彙總 MySQL DBA 日常高頻操作命令,涵蓋密碼管理、邏輯備份還原、表修復、引擎轉換、跨版本遷移兼容參數,適合作為運維手冊附錄。
# 修改 root 密碼(需知舊密碼)
mysqladmin -u root -p'oldpass' password 'newpass'
# 修改任意用戶密碼(需 root 權限)
mysql -uroot -p -e "ALTER USER 'app'@'%' IDENTIFIED BY 'newpass';"
# 導出整庫(含例程、觸發器、事件、GTID 位置)
mysqldump -uroot -p --single-transaction --routines --triggers --events \
--master-data=2 --flush-logs --hex-blob db_name > dump.sql
# 導出單表
mysqldump -uroot -p db_name tbl_name > tbl.sql
# 導入還原
mysql -uroot -p db_name < dump.sql
# 或進入 mysql 後
SOURCE /path/dump.sql;
# 單庫修復(MyISAM 推薦)
mysqlcheck -r -o -uroot -p db_name
# 全庫修復
mysqlcheck -A -r -o -uroot -p
# 單表修復(MyISAM 專用,快速模式)
myisamchk -r -q /var/lib/mysql/db_name/tbl_name.MYI
# InnoDB 損壞:優先用 XtraBackup 物理備份還原,或 dump/import 重建
# MySQL 5.7+
CREATE DATABASE biz_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'app_user'@'10.0.0.%' IDENTIFIED BY 'StrongPass123!';
GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON biz_db.* TO 'app_user'@'10.0.0.%';
FLUSH PRIVILEGES;
mysqldump --single-transaction db_name > dump.sqlENGINE=InnoDB 替換為 ENGINE=MyISAM(注意大小寫)data/db_name 目錄dump.sql⚠️ 轉換後**失去事務、行鎖、外鍵、崩潰恢復能力**,極不建議生產環境使用。
# 高版本 mysqldump 導出低版本兼容 SQL
mysqldump -uroot -p --compatible=mysql40 --default-character-set=utf8mb4 \
--single-transaction db_name > compat_dump.sql
# 導入目標服務器
mysql -uroot -p --default-character-set=utf8mb4 db_name < compat_dump.sql
--compatible=mysql40 會產生較舊語法(如 TYPE=MyISAM 而非 ENGINE=MyISAM),兼容 MySQL 3.23/4.0/4.1。
收藏此速查表,日常運維無需現場查閱文檔,敲命令即走流程。