字體:  

MySQL Server 安裝使用手冊

adj 發表於: 2007-11-14 21:01 來源: ADJ網路控股集團


MySQL安裝使用手冊
一、概述:  
    MySQL為一個多使用者、多執行緒及多站台的快速反應資料庫系統,系統主要著眼於快速與多使用者,最大的好處是用於教育用途,免費使用。
  它具有多種版本,從Unix到Windows 98(或NT)都有,很適合於一般教育界來使用開發一些資庫料的整合應用,把它當成後端資料庫系統,一個不錯的選擇。 二、資源:三、安裝:
  1. 以 root 身份登入 Redhat 系統。
  2. 到「檔案來源」的其中一站下載上述五個檔案。
  3. 依序以 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
  4. 若您需要重新Compiler,則只要安裝 MySQL-3.22.27-2c.src.rpm 套件即可。
  5. 以 root 身份登入 Redhat 系統後,進入MySQL資料庫系統。
    [root@test /root]# mysql mysql
     
  6. 若安裝成功您可看到下列畫面,並看到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>
     
  7. 更改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
     
  8. 刪除空帳號,以維護系統安全
    mysql> DELETE FROM user WHERE User = '';
    Query OK, 0 rows affected (0.00 sec)
    Rows matched: 2  Changed: 0  Warnings: 0
    (最後是兩個單引號)
  9. 即時更新上述修正之資料
    mysql> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.00 sec)
     
  10. 離開MySQL資料庫系統
    mysql> exit
    Bye
    [root@test root]#
     
  11. 測試一下剛剛更新的密碼是否正常:
      
    [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]#
    說明:(1)mysql mysql為連結MySQL資料庫,資料庫名稱為mysql。
       (2)-uroot:-u宣告使用者,root為使用者名稱。
       (3)-p新密碼:-p宣告密碼,後面接root新設的密碼。
  12. 以後進入使用MySQL資料庫系統,須以下列格式進入:
    [root@test root]# mysql 資料庫名稱 -u使用者名稱 -p密碼
    說明:[-u使用者名稱]-u和使用者名稱間不可有空格。
       [-p密碼]-p和密碼間不可有空格。
四、mysqladmin公用程式的使用:
  1. 新增資料庫:
    [root@test root]# mysqladmin -uroot -p密碼 create 資料庫名稱
    說明:用法與mysql一樣,-u緊接MySQL管理者帳號(通常為root),-p緊接管理者密碼(通常為root之密碼)
       資料庫名稱為您要新增的DataBase的名稱。
  2. 刪除資料庫:
    [root@test root]# mysqladmin -uroot -p密碼 drop 資料庫名稱
    說明:用法與上述新增資料庫方式一樣。
  3. 關閉MySQL服務:
    [root@test root]# mysqladmin -uroot -p密碼 shutdown
五、基本用法:
  1. 增加新的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)增加一個新帳號,並設定權限
    mysql> insert into user values ('host','user',password('密碼'),'y','y','y','y','y','y','y','y','y','y','y','y','y','y');
    說明:host->填入您要連線的主機名稱(完整名稱hostname+domainname),若位於本機則填localhost。
       user-->您要設定的帳號
       密碼-->您要設定的密碼
       之後14個y代表著14個不同的權限,依序為
        
      1.Select_priv2.Insert_priv3.Update_priv4.Delete_priv5.Index_priv
      6.Alter_priv7.Create_priv8.Drop_priv9.Grant_priv10.References_priv
      11.Reload_priv12.Shutdown_priv13.Process_priv14.File_priv
       若您不開放權限,則在該項目下填n即可。
     
  2. 增加新的MySQL使用者:(方法二)(較安全)
    格式:
    mysql> GRANT 權限 ON 資料庫(或資料表TABLE) TO user@host IDENTIFIED BY '密碼';
    說明:權限授與共分三種:
    • 對資料庫(DateBase)有十五種權限:
      ALL PRIVILEGESALTERCREATEDELETEDROP
      FILEINDEXINSERTPROCESSREFERENCES
      RELOADSELECTSHUTDOWNUPDATEUSAGE
       
    • 對資料表(Table)則只有八種權限:
      SELECTINSERTUPDATEDELETECREATE
      DROPINDEXALTER
       
    • 對資料欄(column)則只有三種權限:
      SELECTINSERTUPDATE
 
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 '密碼';
說明:將全部權限都設給從host連線上來的user這個人,並給定密碼為密碼。 (2)新增帳號,並指定某資料庫與特定權限給該帳號
mysql> GRANT SELECT,INSERT,UPDATE ON 資料庫名.* TO user@host IDENTIFIED BY '密碼';
說明:開放某資料庫給從host連線上來的user這個人,並給定密碼為密碼
  
  • 刪除使用者帳號與權限:
    格式:
    mysql> REVOKE 權限 ON 資料庫(或資料表TABLE) TO user@host IDENTIFIED BY '密碼';
    說明:命令與用法均與GRANT一樣,特性也一樣,但不做DELETE的動作,只是將權限關閉,真的要刪除時,須用到DELETE命令。
  • 對MySQL直接下命令作任何動作,離開MySQL系統時,必須先做即時更新(FLUSH)再離開吧!
    mysql> FLUSH PRIVILEGES;
     
  • 在作業系統中,檢查權限之命令:
    [root@test root]# mysqlaccess host user 資料庫名 -U root -P 密碼
    說明:host->填入您要檢查的來源主機名稱(完整名稱hostname+domainname),若位於本機則填localhost。
       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]#