我需要得到一个PHP应用程序来检测它的MySQL数据库何时处于readlock状态,并抛出一条错误消息。很简单,但是因为查询排队等待解锁,我们是否可以运行任何MySQL命令来检查当前的锁定状态,而不仅仅是使系统卡住?
干杯,
约翰松
编辑:数据库正由DBA置于readlock中,但是我们的客户希望应用程序自动处理这种适应性...我在浏览文档时未找到任何内容,因此请专家:-)
最佳答案
在检查了文档之后,似乎没有办法通过PHP的mysql C API做到这一点。
您可以通过运行“ SHOW ENGINE [EngineName] STATUS”来查看检测到的死锁,将引擎名称替换为INNDOB,MyISAM或运行锁定表的任何引擎。
您还可以通过从命令行运行“ mysqladmin debug”来获取锁信息。
人们已请求SHOW LOCKS命令,但该命令尚不存在。
这就是我可以从文档中确定的全部内容。我希望其他人对此有解决方案,因为这对我可能非常有用。