交互式登录,密码不会留在命令历史
mysql -h 127.0.0.1 -P 3306 -u root -p连接、查询、备份恢复、授权与锁排查的高频命令,含锁表与大表操作的风险提示。
交互式登录,密码不会留在命令历史
mysql -h 127.0.0.1 -P 3306 -u root -p登录后直接进入指定数据库
mysql -h 127.0.0.1 -P 3306 -u root -p -D <DB>列出当前账号可见的全部数据库
show databases;切换当前数据库
use <DB>;列出当前库中的全部表
show tables;查看表结构,等价于 show columns from
desc <TABLE>;清空全表并重置自增,无法回滚
truncate table <TABLE>;查看执行计划,确认是否命中索引
explain select * from <TABLE> where id = 1;输出真实执行耗时,需 8.0.18 及以上
explain analyze select * from <TABLE> where id = 1;排序分页查询,避免无 limit 的全表扫描
select id, name
from <TABLE>
where status = 1
order by id desc
limit 20;查看当前连接与正在执行的 SQL
show processlist;查看表的索引定义与区分度基数
show index from <TABLE>;统计符合条件的行数,大表慎用
select count(*) from <TABLE> where created_at >= '2026-01-01';备份单个库,含存储过程与触发器
mysqldump -u root -p --single-transaction --routines --triggers <DB> > <DB>.sqlInnoDB 加 --single-transaction 可避免备份期间锁表
备份全部数据库到单个文件
mysqldump -u root -p --single-transaction --all-databases > all.sql只导出表结构,不包含数据
mysqldump -u root -p --single-transaction --no-data <DB> > schema.sql一次备份多个库并保留建库语句
mysqldump -u root -p --single-transaction --databases <DB1> <DB2> > multi.sql将备份文件恢复到指定库
mysql -u root -p <DB> < <DB>.sql在 mysql 客户端内执行,导入备份文件
source /backup/<DB>.sql创建限定网段登录的账号
create user 'app'@'10.0.%' identified by '<PASSWORD>';授予指定库的增删改查权限
grant select, insert, update, delete on <DB>.* to 'app'@'10.0.%';用 grant 授权后无需 flush privileges,直接改权限表才需要
查看账号已获得的权限
show grants for 'app'@'10.0.%';回收指定权限,不影响其他授权
revoke delete on <DB>.* from 'app'@'10.0.%';删除账号,已有连接会立即失效
drop user 'app'@'10.0.%';查看最大连接数配置
show variables like 'max_connections';查看当前已建立的连接数
show global status like 'Threads_connected';查看 InnoDB 事务、锁等待与缓冲池状态
show engine innodb status\G开启慢查询日志,定位低效 SQL
set global slow_query_log = on;只对新连接生效,重启丢失,需写入配置文件
把慢查询阈值调整为 1 秒
set global long_query_time = 1;查看运行中的事务及其开始时间
select * from information_schema.innodb_trx order by trx_started;查看当前的锁等待关系
select * from performance_schema.data_lock_waits;8.0 用此视图,5.7 改用 information_schema.innodb_lock_waits
按耗时排序找出长时间运行的查询
select * from information_schema.processlist where command <> 'Sleep' order by time desc;只终止该连接上正在执行的语句
kill query 12345;终止整个连接,未提交事务会被回滚
kill 12345;本网站使用 Cookie 以确保您在我们的网站上获得最佳体验。 隐私政策.