連線與帳號管理
# 登入
mysql -u username -p
# 建立帳號並授權 (全表所有權限)
GRANT ALL PRIVILEGES ON db_name.* TO 'user'@'host' IDENTIFIED BY 'pass';
# 回收權限
REVOKE ALL PRIVILEGES ON db_name.* FROM 'user'@'host';
# 刪除帳號
DROP USER 'user'@'host';
基礎操作指令
# 啟動/停止 (Linux)
systemctl start|stop|restart mysqld
# 進入客戶端
mysql -h localhost -u root -p db_name
# 顯示資料庫/表/欄位
SHOW DATABASES;
SHOW TABLES;
SHOW COLUMNS FROM tbl_name;
# 建立資料庫並匯入
CREATE DATABASE db_name;
SOURCE /path/to/file.sql;
表結構變更
# 新增欄位
ALTER TABLE tbl_name ADD COLUMN col_name DATATYPE;
# 新增多欄位
ALTER TABLE tbl_name ADD COLUMN c1 INT, ADD COLUMN c2 VARCHAR(20);
# 修改欄位型別
ALTER TABLE tbl_name MODIFY col_name NEW_TYPE;
ALTER TABLE tbl_name CHANGE old_name new_name NEW_TYPE;
# 重命名表
ALTER TABLE old_name RENAME TO new_name;
# 複製表結構
CREATE TABLE new_tbl SELECT * FROM old_tbl WHERE 1<>1;
# 複製表資料
CREATE TABLE new_tbl SELECT * FROM old_tbl;
備份與還原
# 備份整庫
mysqldump -u root -p db_name > backup.sql
# 備份單表
mysqldump -u root -p db_name tbl_name > backup.sql
# 只備份結構
mysqldump -u root -p -d --add-drop-table db_name > structure.sql
# 遠端備份
mysqldump -u user -p -h 192.168.1.2 db_name > /backup/db.sql
# 還原
mysql -u root -p db_name < backup.sql
臨時表與維護
# 建立臨時表 (連線結束自動刪除)
CREATE TEMPORARY TABLE tmp_name (col VARCHAR(10));
# 檢查/修復表
CHECK TABLE tbl_name;
REPAIR TABLE tbl_name;
# 分析/優化表
ANALYZE TABLE tbl_name;
OPTIMIZE TABLE tbl_name;
常用資訊查詢
SELECT VERSION(); -- 版本
SELECT NOW(); -- 當前時間
SELECT USER(); -- 當前使用者
SELECT DATABASE(); -- 當前資料庫
SHOW VARIABLES LIKE 'port'; -- 埠號 (預設 3306)
SHOW PROCESSLIST; -- 所有執行緒
KILL thread_id; -- 終止長查詢
字元集與校對
SHOW CHARACTER SET; -- 所有字元集
SHOW COLLATION; -- 所有校對規則