MySQL 是互联网最常用的关系型数据库之一。本文整理了日常运维最高频的 MySQL 命令,覆盖连接、库表、用户权限与备份恢复,建议收藏备用。
123
mysql -h 127.0.0.1 -P 3306 -u root -p # 指定主机/端口/用户登录mysql -u root -p mydb # 直接连到某个库mysql -e "SELECT 1;" -u root -p # 非交互执行单条 SQL
12345678
SHOW DATABASES; -- 列出所有库CREATE DATABASE mydb DEFAULT CHARSET utf8mb4; -- 建库(务必 utf8mb4)USE mydb; -- 切换库SHOW TABLES; -- 列出当前库表DESC user; -- 查看表结构SHOW CREATE TABLE user\G -- 查看建表语句SHOW INDEX FROM user; -- 查看索引DROP DATABASE mydb; -- 删库(危险!)
12345
CREATE USER 'app'@'%' IDENTIFIED BY 'StrongPass!';GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'app'@'%';FLUSH PRIVILEGES; -- 刷新权限(部分版本需要)SHOW GRANTS FOR 'app'@'%'; -- 查看某用户权限ALTER USER 'app'@'%' IDENTIFIED BY 'NewPass!'; -- 改密码
1234
mysqldump -u root -p mydb > mydb.sql # 逻辑备份整库mysqldump -u root -p mydb t1 t2 > tables.sql # 只备份指定表mysql -u root -p mydb < mydb.sql # 恢复mysql> source /path/mydb.sql; # 在 mysql 客户端内导入
SHOW PROCESSLIST; -- 查看当前连接/正在执行的 SQLSHOW STATUS LIKE 'Threads_%';-- 连接/线程相关状态SHOW VARIABLES LIKE 'max_connections'; -- 关键参数SHOW ENGINE INNODB STATUS\G -- InnoDB 内部状态(死锁/锁等待)
把以上命令存成 cheat-sheet,日常 80% 的 MySQL 操作都能覆盖。更深入的慢查询、主从、备份恢复见后续文章。