【发布时间】:2018-04-04 12:39:30
【问题描述】:
【问题讨论】:
-
这似乎是 phpMyAdmin 使用的 SQL 解析器的问题,我已在 github.com/phpmyadmin/sql-parser/issues/180 报告了这个错误
-
那么您收到任何回复了吗?您对此有其他选择吗?
标签: phpmyadmin locking
【问题讨论】:
标签: phpmyadmin locking
在 phpMyAdmin 中使用 LOCK TABLES 语句没有用处,除非您在它之后键入一些其他语句并将它们与 LOCK TABLES 语句一起发送。原因是锁只适用于当前的 MySQL 会话,一旦 phpMyAdmin 处理完语句,它就会被丢弃。我们不是在谈论 PHP 会话,而是在谈论 MySQL 会话。
【讨论】:
问题的第一部分是 phpMyAdmin 目前似乎在识别语法方面存在问题,因此您会收到红色 X 语法警告。但是,您仍然可以围绕它提交查询,这只是一个警告。正如我在评论中提到的,我刚刚打开了一个关于此的错误报告,因此它应该在即将发布的版本中得到修复。
然而,第二部分是 MySQL 给你的错误,它显示在屏幕底部,它表示你的语法对 MySQL 也无效。你还没有告诉它你想要什么类型的锁;您可以执行LOCK TABLES `users` READ 之类的操作,它应该对您有用(尽管有 phpMyAdmin 警告)。您的选择本质上是 READ 或 WRITE,READ 也允许 LOCAL 修饰符 (MySQL documentation)。当我测试 phpMyAdmin 的当前稳定版 (4.7.5) 和开发版时,它们都可以正常工作。
【讨论】:
当我尝试将使用 MySQL Workbench 创建的 SQL 备份文件导入 PHPMyAdmin 时,这种情况发生在我身上。但是,当 LOCK 和 UNLOCK 行被注释时,它工作正常。否则安装 Workbench 并在没有任何更改的情况下恢复。
【讨论】: