我正在运行 MySQL 5.1.73-0ubuntu0.10.04.1-log,我正在努力使用户可以锁定表。我使用以下内容授予了 LOCK TABLE:
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'
我以 dbuser 身份执行 SHOW GRANTS
,但没有看到任何针对 LOCK TABLES 的 GRANT。
有什么想法吗?
最佳答案
您发布此问题已有很长时间了。无论如何,我认为您应该更具体地确定要锁定的数据库。锁定所有这些表可能不太好 (.),因为 mysql 本身使用一个数据库用于系统 puporses,所以一旦您获得对表的锁定,您只能访问该表,如文档所述。也许有关锁定的信息存储在名为 mysql 的系统数据库中。因此,您正在锁定存储锁本身的那个。
关于mysql - 无法向用户授予 LOCK TABLES 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32642914/