彙整 DBA 日常最高頻的 MySQL 操作指令,涵蓋連線參數、服務啟停、資料庫/表管理、備份還原、權限控制、效能優化、表檢查修復全場景。
# 連線參數全集
mysql -u user -h host [-D db] [-P 3306] [--protocol=tcp|socket|pipe|memory] [-S socket] [--default-charset=utf8] [-E]
# 啟動
/etc/rc.d/init.d/mysqld start
# 或
mysqld_safe --user=mysql &
# 停止
/etc/rc.d/init.d/mysqld stop
# 或
mysqladmin shutdown -u root -p
CREATE DATABASE dbname;
SHOW DATABASES;
SHOW TABLES;
mysqladmin -u root -p variables # 顯示設定參數
OPTIMIZE TABLE tblA, tblB; # 整理碎片
mysqlcheck -o db tblA tblB -u root -p # 優化+檢查修復
ANALYZE TABLE tblA; # 更新索引統計
mysqlcheck -a db [tbl...] -u root -p
CHECK TABLE tblA, tblB, tblC; # 檢查損壞
GRANT ALL ON dbname.* TO user@host IDENTIFIED BY 'pass';
FLUSH PRIVILEGES;
SELECT * FROM tbl WHERE id<10 INTO OUTFILE 'a.dat'
FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n';
LOAD DATA INFILE 'a.dat' INTO TABLE tbl
FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n';
mysqlimport dbname -u root -p a.dat
# 參數對應 FIELDS/LINES 選項,支援 --delete (清空表)、--lock-tables
# 常用組合
mysqldump --opt dbname > dump.sql # --opt = --quick --add-drop-table --add-locks --extended-insert --lock-tables
mysqldump --where="id>5" dbname > dump.sql
mysqldump -X mysql > mysql_db.xml # XML 格式
# 還原
mysql dbname < dump.sql
# 或
mysql> SOURCE /tmp/dump.sql;
\g 等同 ; 執行。\G 垂直顯示 (適合寬表)。\c 取消當前語句。