mysql 逃兵筆記
有關資料庫系統, 我是大外行; 不過在 Linux 下, 很多工具都需要用到 mysql, 例如各種 wiki 軟體, 與各種 blog 軟體等等, 因此不得不學一點簡單的 mysql 指令。 這篇筆記主要是為和我一樣的讀者寫的: 並不想認真學 mysql, 只是想知道一些基本設定。
初次使用
重要! mysql 的密碼若含有除號字元 (/) 那麼在設定 drupal 時可能會出問題!
Mysql 的管理員也叫做 root; 但它跟 linux 系統的 root 沒有關係。 第一次使用時, 可以這樣設定 mysql 管理員的密碼:
mysqladmin -u root password '給你猜'
日後要更改 root 的密碼: mysqladmin -u root -p password
然後照著提示先回答舊密碼、 再回答兩次新密碼即可。
也請參考 MySQL
Change root Password。 要修改一般用戶的密碼,
可以用 root 帳號登入 mysql, 並下 mysql 指令 set
password for greg@localhost=password('不告訴你');
詳見
SET
PASSWORD Syntax。 如果忘記 root 的舊密碼,
就有點麻煩了 。
安裝好之後, 強力建議執行 mysql_secure_installation
以便減少 mysql 對外曝露的風險面。
試車:
- 執行
mysql -u root -p
回答密碼, 登入 mysql。 - 在 mysql 內, 下
\h
救助, 發現可以下\s
查詢系統狀態。 注意兩個欄位: current user 是 root@localhost ; 而 current database 則是空白。 - 下
show databases;
看到兩個資料庫, 其中的 mysql 就是 mysql 的系統資料庫, 重要的系統資料都放在這裡。 於是use mysql
(注意這裡不必有分號), 並再次下\s
, 發現 current database 欄位變成 mysql。 - 下
show tables;
看到十幾個 tables 表格, 其中有一個 table 叫做 user。 - 下
select * from user;
發現螢幕太亂了, 改下select Host,User,Password from user;
只顯示三個 fields 欄位。 - 再按 ^d (或打
\q
) 離開 mysql, 回到 shell 底下。
一些常識
資料檔放在那裡? /var/lib/mysql/ 包含密碼檔也放這裡。
一般要用到 mysql 的套件, 可能會問以下問題:
- 資料庫名稱?
- mysql 的用戶名稱?
- 資料表格名稱前面統一加的字串?
這三個東西, 都可以任意自訂, 也未必要相同。 以 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 才會生效。
刪除帳號, 刪除資料庫
有些時候, 軟體安裝過程沒那麼順利, 偶爾會需要砍掉重練。 如果一套軟體用到 mysql, 那麼當你需要砍掉重練的時候, 可能也會想要同時把它所建立的 mysql 帳號與資料庫一併刪掉, 回復到最原始 (所有資料完全歸零!) 的狀態。
例如要刪除一個名為 zenphoto 的資料庫,
可以先用 zenphoto 資料庫管理員的帳號或 root
帳號登入, 然後: drop database zenphoto
。
然後如果要把 zenphoto 資料庫的管理員
(比方說叫做 zp_admin 好了) 刪掉, 可以這樣:
drop user zp_admin
。
相關文章
- 本頁最新版網址: https://frdm.cyut.edu.tw/~ckhung/b/sa/mysql.php; 您所看到的版本: April 01 2019 02:46:15.
- 作者: 朝陽科技大學 資訊管理系 洪朝貴
- 寶貝你我的地球, 請 減少列印, 多用背面, 丟棄時做垃圾分類。
- 本文件以 Creative Commons Attribution-ShareAlike License 或以 Free Document License 方式公開授權大眾自由複製/修改/散佈。