程序报错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'
image
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容