mysql : Lock wait timeout exceeded; try restarting transaction

    最近在维护mysql数据库时,解析数据时候,数据一直不能入库。原因知道,是因为MySQL的事务产生了死锁,

解决方法:

执行语句:  SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

     查看执行比较久的事务。如果当前时间select sysdate();AM 10:07而事物开始的时间是:AM 9:50,显示是不正常的。根据这个事物的线程ID(trx_mysql_thread_id)。

    执行命令:

    kill 线程ID

    数据库修复正常。

    查看正在锁的事务

    SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

    查看等待锁的事务

    SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

原文地址:https://www.cnblogs.com/xiaomingcai/p/5165540.html