MySQL 數據庫常用操作速查手冊
一、服務管理
| 操作 | Windows (cmd) | Linux |
| 啟動服務 | net start mysql56 (服務名) | service mysqld start / systemctl start mysql |
| 停止服務 | net stop mysql56 | service mysqld stop |
| 查看進程 | 任務管理器找 mysqld.exe | ps -ef | grep mysqld |
| 開機自啟 | 服務屬性設自動 | chkconfig mysqld on / systemctl enable mysql |
二、客戶端連接
# 本地連接
mysql -u root -p
# 指定主機/端口
mysql -h 192.168.1.10 -P 3306 -u root -p
# 退出
exit / quit / \q
三、備份與恢復
導出(備份)
# 單庫備份(含建表語句,不含 CREATE DATABASE)
mysqldump -u root -p db_name > /path/backup.sql
# 多庫備份
mysqldump -u root -p --databases db1 db2 > /path/backup.sql
# 全庫備份
mysqldump -u root -p --all-databases > /path/full_backup.sql
# 僅導出結構
mysqldump -u root -p -d db_name > /path/structure.sql
# 壓縮備份
mysqldump -u root -p db_name | gzip > /path/backup.sql.gz
導入(恢復)
# 方式一:命令行重定向(需先建庫)
mysql -u root -p db_name < /path/backup.sql
# 方式二:MySQL 客戶端內部
mysql> USE db_name;
mysql> SOURCE /path/backup.sql;
四、Blob/Text 大包異常解決
錯誤:PacketTooBigException: Packet for query is too large
# 修改 my.cnf / my.ini
[mysqld]
max_allowed_packet = 64M # 視業務調整,默認 4M/1M
# 重啟服務生效
# 或運行時臨時調整(需 SUPER 權限)
SET GLOBAL max_allowed_packet = 67108864; -- 64M
五、編碼問題完整解決
查看編碼
SHOW VARIABLES LIKE 'char%';
關鍵變數含義
| 變數 | 作用 | 亂碼成因 |
| character_set_client | 解讀客戶端發送數據 | 客戶端發 UTF-8,此為 latin1 → 亂碼 |
| character_set_results | 結果集發送給客戶端編碼 | 結果 UTF-8,客戶端按 GBK 讀 → 亂碼 |
| character_set_connection | 連接層轉換目標編碼 | 中轉環節編碼錯誤 |
| character_set_database | 當前庫預設字符集 | 建表無指定時生效 |
| character_set_server | 服務器內部操作預設編碼 | 全局預設 |
| character_set_system | 元數據編碼(固定 utf8) | - |
控制台亂碼臨時修復
SET character_set_client = gbk;
SET character_set_results = gbk;
永久修復(my.cnf / my.ini)
[client]
default-character-set = utf8mb4
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
指定庫/表/欄位編碼
CREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE TABLE t (c VARCHAR(100)) CHARSET=utf8mb4;
ALTER TABLE t MODIFY c VARCHAR(100) CHARACTER SET utf8mb4;
六、常用管理命令
# 查看版本
SELECT VERSION();
# 查看當前用戶
SELECT USER();
# 查看進程列表
SHOW PROCESSLIST;
SHOW FULL PROCESSLIST;
# 關閉進程
KILL connection_id;
# 查看引擎狀態
SHOW ENGINE INNODB STATUS;
# 刷新權限
FLUSH PRIVILEGES;