mysql 逃兵筆記


有關資料庫系統, 我是大外行; 不過在 Linux 下, 很多工具都需要用到 mysql, 例如各種 wiki 軟體, 與各種 blog 軟體等等, 因此不得不學一點簡單的 mysql 指令。 這篇筆記主要是為和我一樣的讀者寫的: 並不想認真學 mysql, 只是想知道一些基本設定。

初次使用

Mysql 的管理員也叫做 root; 但它跟 linux 系統的 root 沒有關係。 第一次使用時, 可以這樣設定 mysql 管理員的密碼:

	mysqladmin -u root password '給你猜'

日後要更改 root 的密碼:

	mysqladmin -u root -p'給你猜' password '這次你一定猜不到'

注意: -p 跟舊密碼之間不能有空格; password 跟新密碼之間要有空格。 詳見 MySQL Change root Password。 要修改一般用戶的密碼, 可以用 root 帳號登入 mysql, 並下 mysql 指令 set password for greg@localhost=password('不告訴你'); 詳見 SET PASSWORD Syntax。 如果忘記 root 的舊密碼, 就有點麻煩了 (或見 這裡)。 更改密碼之後, 可能需要重新啟動 mysql, 新密碼才會生效。

試車:

  1. 執行 mysql -u root -p 回答密碼, 登入 mysql。
  2. 在 mysql 內, 下 \h 救助, 發現可以下 \s 查詢系統狀態。 注意兩個欄位: current user 是 root@localhost ; 而 current database 則是空白。
  3. show databases; 看到兩個資料庫, 其中的 mysql 就是 mysql 的系統資料庫, 重要的系統資料都放在這裡。 於是 use mysql (注意這裡不必有分號), 並再次下 \s, 發現 current database 欄位變成 mysql。
  4. show tables; 看到十幾個 tables 表格, 其中有一個 table 叫做 user。
  5. select * from user; 發現螢幕太亂了, 改下 select Host,User,Password from user; 只顯示三個 fields 欄位
  6. 再按 ^d (或打 \q) 離開 mysql, 回到 shell 底下。

一些常識

資料檔放在那裡? /var/lib/mysql/ 包含密碼檔也放這裡。

一般要用到 mysql 的套件, 可能會問以下問題:

  1. 資料庫名稱?
  2. mysql 的用戶名稱?
  3. 資料表格名稱前面統一加的字串?

這三個東西, 都可以任意自訂, 也未必要相同。 以 xoops 為例, 資料庫名稱可以是 xoops_db, 用戶名稱可以是 xoops_admin, 資料表格名稱前面統一加的字串可以是 xoops_ 。 不過我自己為了容易記憶 (如果你管很多部電腦, 每部電腦都裝很多需要使用 mysql 的套件, ...) 通常前兩者都用套件名稱 (例如 xoops); 第三項則用套件名稱加底線 (例如 xoops_)

建立帳號, 建立資料庫

例一: xoops

比方說要安裝 xoops 吧。 以下指令建立一個專門給 xoops 使用的帳號:

        GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON xoops.* TO
        'xoops'@'localhost' IDENTIFIED BY '不要照抄';
    

然後按 ^d 離開 mysql, 回到 shell 底下; 再重新用 xoops 的帳號登入: mysql -u xoops -p 進入 mysql 之後, 下 create database xoops; 於是大功告成。

例二: mediawiki

mediawiki 也用到 mysql。 最簡單的方式是: 把 mysql 的 root 帳號密碼填入 mediawiki 的設定選單當中, 讓它自己去建立它需要的資料庫。

附帶一提: ConfirmEdit 擴充套件安裝後, 除了照文件設定之外, 還需要把 $wgCaptchaTriggers['edit'] = false; 這句的 false 改為 true 才會生效。

相關文章

  1. Basic Setup of MySQL in GNU/Linux