当我尝试删除表时,MySQL挂起。我没有任何其他公开会议。如何解决这个问题?我已经等了10个小时,这个过程还没有结束。删除表使MySQL挂起
回答
Waiting for table metadata lock
drop table tableA name
SELECT l1.lat, l1.lon, l2.zipcode FROM tableA l1, tableBl2 where l1.lat = l2.latitude and l1.lon = l2.longitude limit 10
如果这是你的表格,请参阅this link
你有一个隐含的僵局。终止其他交易以释放掉,或者终止释放其他交易。您可以在sql_plus中使用KILL thread_id。
由于我想出了另一个有趣的经验,我添加了更多信息。
Metadata
死锁同样可以在DDL操作之间在给定的表(drop
,alter
...)和该表的选择查询发生。
是,select
。因此,如果您在mysql(或php,例如pdo::fetch
)中循环游标并且在同一个表上运行ddl语句,则会发生死锁。
这种非典型场景的一种解决方案是在任何select语句被完全获取后,系统地释放带有commit
语句的隐式锁。
我丢弃了表格,现在我无法创建新表格,因为我收到了错误代码(28):无法将文件'..'同步到磁盘。我假设通过放弃桌子我会有更多的自由空间。 –
哪些文件?我认为你应该重启服务器,因为这个锁持续了很长时间。 – Sebas
当我运行一个非常大的创建表语句与多列我得到这个错误信息。通过重新启动服务器,你的意思是退出并重新连接?你如何明确重启服务器? –
重新启动MySQL的可能不是最漂亮的解决方案,但它为我工作:
sudo /etc/init.d/mysql restart
mysqladmin drop YOURDATABASE
'mysql.server restart'适用于我。 –
- 1. 从Scala中删除挂起的进程
- 2. 删除密钥空间挂起
- 3. 使用Liquibase删除MySQL表
- 4. 删除表mySql
- 5. PHP挂在MySQL删除语句
- 6. MySQL删除不起作用
- 7. MySQL截断挂起
- 8. MySQL查询挂起
- 9. Mysql查询挂起
- 10. mysql的删除表
- 11. Mysql - 删除多表
- 12. MYSQL多表删除
- 13. OpenCL:内核永远挂起,除非我删除参数
- 14. 使用MySQL删除
- 15. mysql在登录时挂起
- 16. MySQL OdbcCommand命令somtimes挂起?
- 17. mysql转储查询挂起
- 18. Mysql:删除行与使用“删除”列
- 19. 删除MySQL表行使用jQuery的Ajax
- 20. 删除整个表的列。使用mysql
- 21. 使用PHP从MySQL表中删除行
- 22. 如何使用php删除/删除mySQL中的特定表行?
- 23. 一起删除几行mysql数据库?
- 24. mysql的删除主键不起作用
- 25. 从mysql的20排起删除
- 26. PHP AJAX MySQL删除不起作用
- 27. 从MySQL中删除行不起作用
- 28. mysql删除级联不起作用
- 29. php mysql删除不起作用
- 30. MySQL删除请求不起作用
请发布SHOW ENGINE INNODB STATUS的结果,如果数据库是根据课程的InnoDB的 – Sebas
看起来像你正试图将表drop已经在使用中(呃,我的意思是它已被其他进程锁定),因此它正在等待进程提交。 – Rahul
我已经添加了日志输出。 –