我正在运行mysql的基本删除。没有外键,除了正在运行的delete之外,没有任何东西访问表。
delete from database.table
where filename='roger.doc'
and aisle='whatever'
and filetime='2022-07-09 18:37:13.645050';MYSQL刚刚挂起,我怎么才能通过这个或强制删除?
我所犯的错误是
超过
锁定等待超时;尝试重新启动事务。
我想锁要等3分钟。但是,没有使用show engine innodb status\G的锁,最近的一次死锁发生在10天前一个完全不同的db和table上。
我添加了主键,它是filetime,另一个键是aisle,删除仍然挂起。在此之前,我必须手动删除行,然后删除问题行,这已经生效。但删除脚本只是挂起。
使用“解释”给出了以下内容。
1 | DELETE | data_management | NULL | range | PRIMARY,aisle_index,date_index | PRIMARY | 7 | const | 1 | 100.00 | Using where |发布于 2022-07-10 17:36:07
这似乎与复制有关。其中一个节点拒绝接受来自牵头节点的事务。所以它只是停止了这个系统。
发布于 2022-07-10 21:22:29
系统上的其他线程在表上持有锁。这可能是由若干问题引起的。您应该运行显示完整的PROCESSLIST;来查找表上有锁的线程。一旦您识别了它(它可能是由另一个用户启动的线程--不管是直接启动的还是作为带有定义器安全配置文件的存储程序的一部分),您将需要杀死该线程。
https://stackoverflow.com/questions/72928382
复制相似问题