无法访问MYSQL中的某些表

时间:2016-05-10 14:46:16

标签: mysql phpmyadmin deadlock

我需要帮助一些mysql表无法访问(看起来像死锁),因为我的网站已关闭,我无法通过Navicat或phpMyAdmin打开这些表,我试图通过知道线程ID来杀死查询:

SHOW FULL PROCESSLIST

但我没有找到任何与此问题相关的行。

注意到在我尝试对包含>的2个表运行一些繁重查询后导致的问题1000万行,我花了3个多小时就取消了查询。

我无法访问重启服务器,我正在使用godaddy托管,他们没有在线聊天支持我的国家!

我可以做任何事情来修复myside而不重新启动!  请建议。

2 个答案:

答案 0 :(得分:1)

即使它是200万行,查询也不应该花费3个小时,这意味着SQL本身需要认真关注。正如你所说'看起来像死锁',你可以通过SHOW ENGINE INNODB STATUS进行检查 如果我们在锁定状态下获得更多表,那么我们可以通过设置innodb_lock_wait_timeout系统变量的值来解决这些情况。

供参考:

https://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_deadlock https://www.percona.com/blog/2012/09/19/logging-deadlocks-errors/

答案 1 :(得分:0)

在类Unix操作系统中,您可以使用" system"或" \!"在mysql解释器中执行shell的任何命令的前缀。 See this. 当然,您必须具有管理员权限才能在shell中运行任何命令。

有了这个,您可以使用一些mysql管理命令获取de PID并通过操作系统分析您的问题。