2012年9月26日 星期三

MySQL 準備工作

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。






Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu


沒有留言:

張貼留言