MySQL 是 DBA 最常打交道的資料庫之一。本文整理資深 DBA 總結的核心操作技巧,涵蓋備份恢復、連線管理、基礎命令、建庫建表實例、密碼修改、用戶授權等實戰內容,適合速查與進階。
除了標準邏輯備份,MySQL 支援直接複製資料目錄進行物理備份(非官方正式驗證,生產環境請謹慎測試)。
TestA 資料庫,恢復至 HostB。TestA。data 資料夾(如 C:\MySQL\data)。C:\MySQL\data\TestA 至 HostB 同樣路徑。TestA 已出現,查詢修改正常。結論:MySQL 可透過文件目錄直接備份恢復,無需額外工具,速度極快。
# 格式
mysql -h主機地址 -u用戶名 -p密碼
# 本機連線(無密碼)
mysql -uroot -p
# 遠端連線
mysql -h110.110.110.110 -uroot -pabcd123
# 退出
exit
| 操作 | 命令 |
|---|---|
| 顯示資料庫列表 | SHOW DATABASES; |
| 切換資料庫 | USE mysql; |
| 顯示資料表 | SHOW TABLES; |
| 顯示表結構 | DESCRIBE 表名; |
| 建立資料庫 | CREATE DATABASE 库名; |
| 建立資料表 | USE 库名; CREATE TABLE 表名 (欄位定義); |
| 刪除資料庫/表 | DROP DATABASE 库名; DROP TABLE 表名; |
| 清空表數據 | DELETE FROM 表名; |
| 查詢所有記錄 | SELECT * FROM 表名; |
DROP DATABASE IF EXISTS school;
CREATE DATABASE school;
USE school;
CREATE TABLE teacher (
id INT(3) AUTO_INCREMENT NOT NULL PRIMARY KEY,
name CHAR(10) NOT NULL,
address VARCHAR(50) DEFAULT '深圳',
year DATE
);
INSERT INTO teacher VALUES ('', 'glchengang', '深圳一中', '1976-10-10');
INSERT INTO teacher VALUES ('', 'jack', '深圳一中', '1975-12-23');
建議將上述命令存為 school.sql,用重導向執行:
mysql -uroot -p密碼 < c:\school.sql
# 首次設密碼(root 初始無密碼)
mysqladmin -uroot -password ab12
# 修改密碼
mysqladmin -uroot -pab12 password djg345
格式:GRANT 權限 ON 資料庫.* TO 用戶@登錄主機 IDENTIFIED BY '密碼';
GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO test1@'%' IDENTIFIED BY 'abc';
風險:密碼洩露將導致全網資料庫淪陷。
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO test2@localhost IDENTIFIED BY 'abc';
移除密碼:GRANT ... IDENTIFIED BY '';