我正在运行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的系统数据库中。所以你要把锁锁锁在里面。