长事务
-- 查询持续时间超过60秒的事务
select * from information_schema.innodb_trx where TIME_TO_SEC(timediff(now(),trx_started))>60;
-- 查询当前正在执行的数据库连接和查询的进程列表
show processlist;
慢查询日志
-- 查询慢查询日志是否开启, 可取值: 1 和 0 , 1(ON)代表开启, 0(OFF)代表关闭
show variables like 'slow_query_log';
-- 查询指定慢查询日志的文件名
show variables like 'slow_query_log_file';
-- 查询配置的时间限制,超过这个时间将认为值慢查询,将需要进行日志记录,默认10s
show variables like 'long_query_time';
# Docker安全的MySQL查询慢SQL
# 进入容器
docker exec -it 容器名称|容器id bash
# 登陆mysql
mysql -u root -p
#查询指定慢查询日志的文件名
show variables like 'slow_query_log_file';
binlog日志
如何开启binlog
-- 查看是否开启binlog日志
show variables like '%log_bin%';
-- 获取binlog文件列表
show binary logs;
# 执行下面命令,可以得到mysql的配置文件的默认加载顺序
mysql --help | grep 'Default options' -A 1
可以看到mysql优先加载/etc/my.cnf中的配置。
所以需要在/etc/my.cnf中mysqld节添加开启binlog的配置,如下有两种方式
#第一种方式:
#开启binlog日志
log_bin=ON
#binlog日志的基本文件名
log_bin_basename=/var/lib/mysql/mysql-bin
#binlog文件的索引文件,管理所有binlog文件
log_bin_index=/var/lib/mysql/mysql-bin.index
#配置serverid
server-id=1
#第二种方式:
#此一行等同于上面log_bin三行
log-bin=/var/lib/mysql/mysql-bin
#配置serverid
server-id=1
修改完配置后,重启mysql。执行SHOW VARIABLES LIKE 'log_bin'; Value 值为 ON即可。
# 重启服务
systemctl restart mysqld
日志读取
mysqlbinlog -vv log-file; --列如 mysqlbinlog -vv mysql-bin.000001