我正在运行MySQL 5.1.73-0ubuntu0.10.04.1-log,我正在尝试使它成为用户可以锁定表的工具。我授予锁表如下:
GRANT SELECT, LOCK TABLES ON *.* TO 'dbuser';
Query OK, 0 rows affected (0.00 sec)回应。
之后,当我以dbuser登录并尝试执行LOCK TABLES table_name WRITE;时,会出现以下错误:

ERROR 1044 (42000): Access denied for user 'dbuser'@'localhost' to database 'dbname'

我确实SHOW GRANTS是dbuser,没有看到锁表的任何授权。
有什么想法吗?

最佳答案

你已经很久没提这个问题了。无论如何,在我看来,你应该更具体地锁定哪个数据库。也许不太适合锁定所有的表(.),因为mysql本身使用一个数据库作为系统pupors,所以一旦您要求锁定一个表,您就只能访问该表,正如文档所述。也许关于锁定的信息存储在名为mysql的系统数据库中。所以你要把锁锁锁在里面。

09-26 03:51