MySQL Server 簡介

The materials presented in this web page is provided as is and is used solely for educational purpose. Use at your own risks.
Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu

請勿轉貼

看其他教材


本文假設你已經安裝了 MySQL Server 5.1.x 或者 5.5.x 版。由於 root 擁有最高權限, 因此練習中非常容易造成嚴重的錯誤,為了方便,大多數都會產生一個擁有 一般權限的使用者,並為其指定一個專用的資料庫,以便於測試。 以下我們假設要產生一個使用者 jlu 並使他成為名為 eric 資料庫的擁有者,而且 允許這個使用者能從任何電腦連到這個資料庫。這個步驟主要是給資料庫 管理員的,而你需要使用 mysql 這個執行檔。
  1. 啟動 MySQL 資料庫:如果你依據之前的建議安裝方式,請在 e:\mysql 目錄下,執行
      .\startup.bat
      
    如果你的 MySQL 是安裝在 Unix/Linux 環境下,請在提示下輸入(註:早期的文件中, 我假設建置的環境是 Unix/Linux 環境;這些年由於教學環境的限制,大多轉成了 Windows 的環境,所以畫面大多以 Windows 為主)
      mysqld_safe --user=mysql
      
    如果你依照之前的安裝方式進行,你應該可以看到如下的畫面:

  2. 進入 mysql:剛安裝好的時候,MySQL 為你設定兩個使用者,一個是 root, 另一個是 anonymous,而這兩個帳號的密碼一開始的時候是空的, 所以第一次 login 是不需要密碼的。
    // 請在命令提示字元視窗內,進入 e:\mysql\bin,語法是在
    // 視窗內,分別輸入
    // e:
    // cd \mysql\bin
    // 這兩個指令。然後,輸入
    mysql -u root
      
    輸入之後,你應該可以看到如下的畫面:

    在畫面的底下,有一個 mysql> 的提示,我們稱它為 MySQL 提示; 之後文章內的指令,都是輸入在 mysql> 之後,然後 Enter

    // 想看看目前有幾個 databases,所有系統設定都在 mysql 這個資料庫
    show databases;
    
    // 使用 mysql 這個資料庫
    use mysql;
    
    // 想看看目前使用的 database 有幾個 tables
    show tables;
    
    // 看看有哪些使用者
    select host, user from user;
    
    // 讓我們為 root 設定密碼
    // 更改 user table 中的 password 欄位的值
    // 下列指令中的 newpasswd 請把它改成你希望的密碼
    update user set password = password('newpasswd') where user='root';
    
    // 讓我們把 anonymous 帳號刪除
    delete from user where user='';
    
    // 讓修改馬上生效
    flush privileges;
    
    // logout
    quit
    
    // 重新 login, 這次就需要密碼了
    // 以 -p 來指定在 enter 後輸入密碼
    // 依照 MySQL 的官方文件,從 MySQL 4.1.1 版之後,你所輸入的密碼
    // 並不會是以明文的方市在網路上傳送,因此他們認為非常安全
    // 但是所有傳送的資料卻都是明文的。建議使用 ssh
    mysql -u root -p
      

  3. 產生新的使用者 jlu
    // 兩個 some-password 可以不同,但是這會造成再 localhost 登入時
    // 所用的密碼和遠端登入時不一樣
    //
    // 授與使用者 jlu 在資料庫  eric 中所有的權限
    grant all privileges on eric.* to 'jlu'@'localhost'
    identified by 'some-password' with grant option;
    
    // 你可以檢查一下使用者是否已經產生
    select host, user from mysql.user;
    
    // % 代表所有遠端電腦都可以登入,如果你的安全需求比較高,建議不要
    grant all privileges on eric.* to 'jlu'@'%' 
    identified by 'some-password' with grant option;
      
  4. 產生資料庫 eric 並將 eric 的權限給使用者 jlu。以下的語法,資料庫 eric 以綠色表示。
    // 產生資料庫 eric
    create database eric;
    
    // 將 eric 的權限給使用者 jlu
    grant all on eric.* to jlu@'localhost';
    
    // 檢查資料庫 eric 是否已經產生
    show databases;
      
  5. 由於資料庫系統安裝於遠端的 Unix 電腦上,而我們一般都是使用 Microsoft Windows 的系統,因此使用一個 GUI 介面的程式將會非常方便,我們建議安裝 MySQL 下載頁 中的 MySQL Workbench。


Last Updated: Monday, 02-May-2011 14:25:14 CST
Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu