MYSQL 常用命令

来源:这里教程网 时间:2026-03-01 18:34:25 作者:

1.参数

-- 查看特定参数(模糊匹配)
SHOW VARIABLES LIKE '%timeout%';
SHOW VARIABLES LIKE '%buffer%';
-- 全局参数(影响整个实例)
SHOW GLOBAL VARIABLES LIKE 'max_connections';
-- 会话参数(仅当前连接)
SHOW SESSION VARIABLES LIKE 'wait_timeout';
-- 修改最大连接数(立即生效,重启失效)
SET GLOBAL max_connections = 500;
-- 仅修改当前会话SET SESSION wait_timeout = 600;
SET wait_timeout = 600;  -- SESSION是默认的

2.查看日志

#错误日志
show variables like '%log_error%';
#查看binlog 
mysqlbinlog -vv 日志文件名
#慢查询日志
mysqldumpslow --help # 查看帮助
mysqldumpslow -s at -t 10 /var/log/mysql/slow.log  # 显示最慢的10个查询(按平均时间排序)
mysqldumpslow -s c -t 10 /var/log/mysql/slow.log  # 显示执行次数最多的10个查询
mysqldumpslow -a /var/log/mysql/slow.log  # 使用 -a 显示完整语句
mysqldumpslow -g "SELECT" /var/log/mysql/slow.log  # 只显示SELECT语句
#通用日志
SET GLOBAL general_log = on; #临时开启
#redo 日志
-- 查看相关参数
SHOW VARIABLES LIKE 'innodb_flush_log_at_trx_commit';
=1    每次事务提交都刷盘,保证持久性    类似COMMIT WRITE IMMEDIATE    
=2    每次提交只写到OS缓存,每秒刷盘    类似COMMIT WRITE BATCH    
=0    每秒刷盘,事务提交不触发    类似异步提交    
SHOW VARIABLES LIKE 'innodb_flush_log_at_timeout%';
MySQL触发条件:
-事务提交时(取决于innodb_flush_log_at_trx_commit)
-Redo Log Buffer满(超过innodb_log_buffer_size的1/2)
-每秒定时刷盘(innodb_flush_log_at_timeout)
-Checkpoint时
-后台线程周期性刷盘
动态redo
SHOW VARIABLES LIKE 'innodb_redo_log_capacity';
#中继日志
show variables like '%relay%';
#DDL日志

3.用户权限

#mysql 存储权限的表
user,db,tables_priv,columns_priv,procs_priv,proxies_priv
#显示用户权限
show grants for root@'%';
#创建用户
create user itpux1@'%' identified by 'itpux1';
grant all privileges on *.* to 'itpux2'@'%' identified by 'itpux2' with grant option; #老版本创建用户
#保存权限
flush privileges;
#案例
grant select,insert,update,delete on itpux.* to itpux1@'%';
grant create,alter,drop on itpux1.* to dev@'%';
#删除,重命名用户
drop user dev;
drop user dev@'%';
rename user 'itpuxdba'@'localhost' to 'itpuxdba1'@'localhost';

4.用户角色

5.7版本通过proxies_priv模拟实现role
set global check_proxy_users=on;
set global mysql_native_password_proxy_users=on;
create user 'itpux_dba'; 类似组/角色
create user 'itpux11';
create user 'itpux12';
create user 'itpux13';
grant proxy on itpux_dba to itpux11;
grant proxy on itpux_dba to itpux12;
grant select on itpux.* to itpux_dba;
flush privileges;
8.0 role
与ORACLE相同
-- 查看当前设置
SHOW VARIABLES LIKE 'activate_all_roles_on_login';
-- 设置为 ON(强烈推荐在生产环境开启)
SET GLOBAL activate_all_roles_on_login = ON;
-- 或在 my.cnf 中添加:activate_all_roles_on_login=ON

相关推荐