整理高頻 MySQL 客戶端命令,分類標簽,適合打印貼工位。
# 本地
mysql -uroot -p
# 遠程
mysql -h 10.0.0.1 -uroot -p'pwd' -P 3306
# 退出
exit \q
# 建用戶(8.0+)
CREATE USER 'app'@'%' IDENTIFIED BY 'pwd';
GRANT SELECT,INSERT,UPDATE,DELETE ON db.* TO 'app'@'%';
FLUSH PRIVILEGES;
# 改密
mysqladmin -uroot -p'old' password 'new'
# 或 SQL
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new';
SHOW DATABASES;
USE db;
SHOW TABLES;
DESC tbl;
SHOW CREATE TABLE tbl;
CREATE DATABASE db CHARSET utf8mb4;
DROP DATABASE db;
CREATE TABLE t (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20)) ENGINE=InnoDB;
ALTER TABLE t ADD COLUMN age TINYINT;
DROP TABLE t;
TRUNCATE TABLE t;
INSERT INTO t(name) VALUES('a'),('b');
UPDATE t SET name='c' WHERE id=1;
DELETE FROM t WHERE id=2;
SELECT * FROM t;
SELECT * FROM t ORDER BY id DESC LIMIT 10 OFFSET 20;
# 全庫結構+數據
mysqldump -uroot -p --single-transaction --routines --triggers --events --all-databases > all.sql
# 單庫
mysqldump -uroot -p db > db.sql
# 只結構
mysqldump -uroot -p -d db > db_struct.sql
# 壓縮備份
mysqldump -uroot -p db | gzip > db.sql.gz
# 恢復
mysql -uroot -p db < db.sql
gunzip < db.sql.gz | mysql -uroot -p db
# 導出 CSV
SELECT * INTO OUTFILE '/tmp/t.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' FROM t;
# 導入 CSV
LOAD DATA INFILE '/tmp/t.csv' INTO TABLE t FIELDS TERMINATED BY ',' ENCLOSED BY '"';
# 導入 SQL 文件
SOURCE /path/to/file.sql;
; 即可提交。↑/↓ 翻閱,\\s 顯示服務器狀態。mysql --prompt='\\u@\\h [\\d]>' 或 MYSQL_PS1 環境變量。mysql --safe-updates 禁止無 WHERE 的 UPDATE/DELETE。