整理 MySQL 日常運維高頻指令,涵蓋資料庫/表管理、用戶授權、備份還原策略、批次執行技巧,適合 DBA、開發與運維人員快速查閱。
CREATE DATABASE db_name [CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci];
USE db_name;
DROP DATABASE db_name; -- 直接刪除,無提示
SHOW DATABASES;
SHOW TABLES;
DESCRIBE tbl_name; -- 表結構
SELECT VERSION(), CURRENT_DATE; -- 版本與日期
mysql -u root -p
UPDATE mysql.user SET authentication_string=PASSWORD('newpass') WHERE User='root';
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'pass' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY 'pass' WITH GRANT OPTION;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP
ON fangchandb.* TO 'custom'@'it363.com' IDENTIFIED BY 'passwd';
REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'%';
DELETE FROM mysql.user WHERE User='root' AND Host='%';
FLUSH PRIVILEGES;
# 單庫備份
mysqldump -h host -u root -p db_name > db_name_backup.sql
# 多庫備份
mysqldump -u root -p --databases db1 db2 > multi_backup.sql
# 全庫備份
mysqldump -u root -p --all-databases > full_backup.sql
# 只要建表結構
mysqldump -u root -p -d db_name > schema.sql
# 只要 INSERT 資料
mysqldump -u root -p -t db_name > data.sql
# 純文字格式(每表產生 .sql 結構檔 + .txt 資料檔)
mysqldump -T /export/path db_name table_name
# 1. 建立空資料庫
mysqladmin -h host -u root -p create db_name
# 2. 匯入
mysql -h host -u root -p db_name < db_name_backup.sql
# 方式 1:重導向
mysql -u root -p db_name < commands.sql
# 方式 2:source 指令(在 mysql 客戶端內)
SOURCE /path/to/commands.sql
# 方式 3:mysql 命令列直接執行字串
mysql -u root -p -e "SELECT * FROM db_name.tbl_name;"
# 方式 4:管道傳遞
cat commands.sql | mysql -u root -p db_name
ALTER TABLE t1 RENAME TO t2;
SELECT DISTINCT col FROM tbl; 去重mysqladmin drop db_name 刪庫前有確認提示--single-transaction --master-data=2 --routines --triggers --events(InnoDB 一致性備份)autocommit、unique_checks、foreign_key_checks 加速:SET autocommit=0; SET unique_checks=0; SET foreign_key_checks=0;
SOURCE huge_dump.sql;
COMMIT; SET autocommit=1; SET unique_checks=1; SET foreign_key_checks=1;將常用指令內化為肌肉記憶,配合腳本自動化,能讓資料庫運維從「手工作業」進化為「可靠交付」。建議將本文轉為團隊內部 Cheat Sheet,納入新人入職教材。