MySQL 常用 SQL 与运维速查

连接与查看

mysql -h 127.0.0.1 -u app -p appdb
mysql -e 'SELECT VERSION();'
mysql -e 'SHOW DATABASES;'
mysql appdb -e 'SHOW TABLES;'
mysql appdb -e 'SHOW CREATE TABLE orders\G'
mysql -e 'SHOW PROCESSLIST;'
mysql -e 'SHOW STATUS LIKE "Threads_connected";'
mysql -e 'SHOW VARIABLES LIKE "max_connections";'

用户与权限

CREATE USER 'app'@'%' IDENTIFIED BY 'password';
GRANT SELECT, INSERT, UPDATE ON app.* TO 'app'@'%';
FLUSH PRIVILEGES;
SHOW GRANTS FOR 'app'@'%';
ALTER USER 'app'@'%' IDENTIFIED BY 'new-password';

查询与优化

EXPLAIN SELECT * FROM orders WHERE user_id = 1;
EXPLAIN ANALYZE SELECT ...;
SHOW INDEX FROM orders;
SHOW TABLE STATUS LIKE 'orders';
SHOW ENGINE INNODB STATUS\G

备份与恢复

mysqldump -u root -p --single-transaction appdb > appdb.sql
mysqldump -u root -p --databases appdb > appdb-with-create.sql
mysql -u root -p appdb < appdb.sql
mysqladmin -u root -p status

场景速查

目的 命令
查看连接数 SHOW STATUS LIKE 'Threads_connected';
查看慢查询 SHOW VARIABLES LIKE 'slow_query_log';
查看锁等待 SHOW ENGINE INNODB STATUS\G
查看复制 SHOW REPLICA STATUS\G
查看表大小 information_schema.tables
杀死连接 KILL <id>;

易错点

相关命令