程序报错try restarting transaction,mysql请求binlog日志

今天早上发现浏览器请求一直pending,请求过很久才得到返回结果,报

Lock wait timeout exceeded; try restarting transaction; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction"

一开始以为程序死锁,但是kill时候一直出错,最后Connection refused: connect,在平台上发现报警日志文件已满

下边记录请求日志文件三部曲(当然是在还能正常连接数据库的前提下),否则只能找运维同学手动删除啦

第一步

show binary logs;

image.png

查看所有的日志文件

第二步

show master status;

image.png

查看正在使用的日志文件

第三步

purge binary logs to 'mysql-bin.000021'

删除除了正在使用的日志文件外的所有日志文件

当然大名鼎鼎的Mysql肯定有自动删除的功能

1.找到mysql的配置文件,新增或者更新参数

expire_logs_days=10

2.临时使用也可以直接用命令设置,但是数据库重启会失效

show variables like '%logs%';
set global expire_logs_days = 10;

10代表十天

查看binlog日志的内容

SHOW BINLOG EVENTS IN 'mysql-bin.000002'
程序报错try restarting transaction,mysql请求binlog日志_第1张图片
image

你可能感兴趣的:(程序报错try restarting transaction,mysql请求binlog日志)