一、概述:
MySQL為一個多使用者、多執行緒及多站台的快速反應資料庫系統,系統主要著眼於快速與多使用者,最大的好處是用於教育用途,免費使用。
它具有多種版本,從Unix到Windows 98(或NT)都有,很適合於一般教育界來使用開發一些資庫料的整合應用,把它當成後端資料庫系統,一個不錯的選擇。 二、資源:
- 作業環境:
RedHat 6.0 + CLE 0.8p1 - 原始出處:
http://www.mysql.net/
台灣Mirror站:http://mysql.ht.net.tw/ - 版本:
MySQL-3.22.27中文修正版 - 檔案來源:
ftp://sql.hmes.kh.edu.tw/pub/apache_php3_mysql/mysql-3.22.27/ 或
Mirror站 ftp://ftp.linuxer.nu/Linux/apache_php_mysql/rpms/mysql-3.22.27/ 或
Mirror站 http://linux.mcic.thu.edu.tw/download/pub/packages/apache+php+mysql/ - 檔案列表:
-rw-r--r-- 1 root ftp 4693686 Nov 27 00:59 MySQL-3.22.27-2c.i386.rpm
-rw-r--r-- 1 root ftp 4041769 Nov 27 00:59 MySQL-3.22.27-2c.src.rpm
-rw-r--r-- 1 root ftp 541043 Nov 27 00:59 MySQL-bench-3.22.27-2c.i386.rpm
-rw-r--r-- 1 root ftp 2050704 Nov 27 00:59 MySQL-client-3.22.27-2c.i386.rpm
-rw-r--r-- 1 root ftp 601871 Nov 27 00:59 MySQL-devel-3.22.27-2c.i386.rpm - 網路資源:
PHP-Zend Resources Center - 技術與資源交流中心 MySQL交流討論區
瑞琦資訊工作室 MySQL交流討論區
linux.twbbs.org BBS站 MySQL版
- 以 root 身份登入 Redhat 系統。
- 到「檔案來源」的其中一站下載上述五個檔案。
- 依序以 rpm -ivh 命令將所下載下來的檔案安裝入Redhat作業系統中。
[root@test /root]# rpm -ivh MySQL-3.22.27-2c.i386.rpm
[root@test /root]# rpm -ivh MySQL-client-3.22.27-2c.i386.rpm
[root@test /root]# rpm -ivh MySQL-devel-3.22.27-2c.i386.rpm - 若您需要重新Compiler,則只要安裝 MySQL-3.22.27-2c.src.rpm 套件即可。
- 以 root 身份登入 Redhat 系統後,進入MySQL資料庫系統。
[root@test /root]# mysql mysql - 若安裝成功您可看到下列畫面,並看到mysql的提示號!
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 212 to server version: 3.22.27 Type 'help' for help.
mysql>
- 更改MySQL系統之管理者密碼(新密碼的地方,換成您要設定的密碼)
mysql> UPDATE user SET password=password('新密碼') where user='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2 Changed: 0 Warnings: 0 - 刪除空帳號,以維護系統安全
(最後是兩個單引號)mysql> DELETE FROM user WHERE User = '';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2 Changed: 0 Warnings: 0 - 即時更新上述修正之資料
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec) - 離開MySQL資料庫系統
mysql> exit
Bye
[root@test root]# - 測試一下剛剛更新的密碼是否正常:
說明:(1)mysql mysql為連結MySQL資料庫,資料庫名稱為mysql。[root@test root]# mysql mysql -uroot -p新密碼
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 29 to server version: 3.22.27 Type 'help' for help.
mysql> exit
Bye
[root@test root]#
(2)-uroot:-u宣告使用者,root為使用者名稱。
(3)-p新密碼:-p宣告密碼,後面接root新設的密碼。 - 以後進入使用MySQL資料庫系統,須以下列格式進入:
說明:[-u使用者名稱]-u和使用者名稱間不可有空格。[root@test root]# mysql 資料庫名稱 -u使用者名稱 -p密碼
[-p密碼]-p和密碼間不可有空格。
- 新增資料庫:
說明:用法與mysql一樣,-u緊接MySQL管理者帳號(通常為root),-p緊接管理者密碼(通常為root之密碼)[root@test root]# mysqladmin -uroot -p密碼 create 資料庫名稱
資料庫名稱為您要新增的DataBase的名稱。 - 刪除資料庫:
說明:用法與上述新增資料庫方式一樣。[root@test root]# mysqladmin -uroot -p密碼 drop 資料庫名稱 - 關閉MySQL服務:
[root@test root]# mysqladmin -uroot -p密碼 shutdown
- 增加新的MySQL使用者:(方法一)
(1)開啟mysql資料庫[root@test root]# mysql mysql -uroot -p密碼
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 29 to server version: 3.22.27 Type 'help' for help.
mysql>
(2)增加一個新帳號,並設定權限
說明:host->填入您要連線的主機名稱(完整名稱hostname+domainname),若位於本機則填localhost。mysql> insert into user values ('host','user',password('密碼'),'y','y','y','y','y','y','y','y','y','y','y','y','y','y');
user-->您要設定的帳號
密碼-->您要設定的密碼
之後14個y代表著14個不同的權限,依序為1.Select_priv 2.Insert_priv 3.Update_priv 4.Delete_priv 5.Index_priv 6.Alter_priv 7.Create_priv 8.Drop_priv 9.Grant_priv 10.References_priv 11.Reload_priv 12.Shutdown_priv 13.Process_priv 14.File_priv
- 增加新的MySQL使用者:(方法二)(較安全)
格式:
說明:權限授與共分三種:mysql> GRANT 權限 ON 資料庫(或資料表TABLE) TO user@host IDENTIFIED BY '密碼'; - 對資料庫(DateBase)有十五種權限:
ALL PRIVILEGES ALTER CREATE DELETE DROP FILE INDEX INSERT PROCESS REFERENCES RELOAD SELECT SHUTDOWN UPDATE USAGE - 對資料表(Table)則只有八種權限:
SELECT INSERT UPDATE DELETE CREATE DROP INDEX ALTER - 對資料欄(column)則只有三種權限:
SELECT INSERT UPDATE
- 對資料庫(DateBase)有十五種權限:
user@host表示法:表示來自host主機的user使用者。user為您欲連線MySQL的帳號,host則必須填上你連線來源的主機完整名稱(hostname.domianname);例如:我想要設定的帳號為coco,而且是從mail.hmes.kh.edu.tw這台主機連上來使用的,所以就寫成coco@mail.hmes.kh.edu.tw。若使用萬用字元,則必須加上括號,例如:('test%'@'%.hinet.net')==>表示從.hinet.net網域連上來的test開頭的帳號。 GRANT的特性:在MySQL資料庫,若找到相對應的entry則只作UPDATE,找不到才會CREATE一個新的帳號及權限。 權限設定建議:除了管理者外,其他user儘量避免設定全部權限全開。一般而言,只開SELECT、INSERT、UPDATE三項權限;進階的user則加開DELETE、CREAT、DROP、INDEX四項權限;其餘權限,能不開,則不開,以確保整個MySQL的安全性。 (1)新增帳號,並給予全部權限
mysql> GRANT ALL PRIVILEGES ON *.* TO user@host IDENTIFIED BY '密碼'; |
mysql> GRANT SELECT,INSERT,UPDATE ON 資料庫名.* TO user@host IDENTIFIED BY '密碼'; |
格式:
mysql> REVOKE 權限 ON 資料庫(或資料表TABLE) TO user@host IDENTIFIED BY '密碼'; |
mysql> FLUSH PRIVILEGES; |
[root@test root]# mysqlaccess host user 資料庫名 -U root -P 密碼 |
user-->您要檢查的帳號
資料庫名-->填入您要檢查的資料庫名稱
-U root-->-u後面填入MySQL管理者的帳號(通常設root)
-P 密碼-->-p後面填入MySQL管理者的密碼
例如:我要檢查來自mail.hmes.kh.edu.tw這台機器的root帳號,對資料庫fm的權限為何?
則在系統下輸入
[root@test root]# mysqlaccess mail.hmes.kh.edu.tw fm focalmail -U root -P nnyyjj |
mysqlaccess Version 2.03, 27 Feb 1997 By RUG-AIV, by Yves Carlier (Yves.Carlier@rug.ac.be) This software comes with ABSOLUTELY NO WARRANTY. +++USING FULL WHERE CLAUSE+++ +++USING FULL WHERE CLAUSE+++ +++USING FULL WHERE CLAUSE+++ Access-rights for USER 'fm', from HOST 'mail.hmes.kh.edu.tw', to DB 'focalmail' +-----------------+---+ +-----------------+---+ | Select_priv | Y | | Shutdown_priv | Y | | Insert_priv | Y | | Process_priv | Y | | Update_priv | Y | | File_priv | Y | | Delete_priv | Y | | Grant_priv | Y | | Create_priv | Y | | References_priv | Y | | Drop_priv | Y | | Index_priv | Y | | Reload_priv | Y | | Alter_priv | Y | +-----------------+---+ +-----------------+---+ NOTE: A password is required for user `fm' :-( The following rules are used: db : 'No matching rule' host : 'Not processed: host-field is not empty in db-table.' user : '','fm','017186377a52afaf','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'' BUGs can be reported by email to Yves.Carlier@rug.ac.be [root@test /root]# |