MySQL 转储权限错误

MySQL 转储权限错误

这看起来很奇怪,但是当

mysqldump -h host -u backup -p database | gzip > /tmp/test.gz

我明白了

Access denied for user 'backup'@'%' (using password: YES) when using LOCK TABLES

当连接

mysqldump -h host -u backup -p database

我明白了

mysql> lock tables booking read;
Query OK, 0 rows affected (0.00 sec)

mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)

因此看来许可是存在的

show grants for current_user()

返回

GRANT SELECT, LOCK TABLES, SHOW VIEW ON *.* TO 'backup'@'%' IDENTIFIED BY PASSWORD 'password here'

有什么原因导致它无法通过 mysqldump 工作

编辑

添加重新加载权限我可以做到

FLUSH TABLES WITH READ LOCK所以没有权限问题

答案1

来自MySQL 文档mysqldump

mysqldump 至少需要对转储表具有 SELECT 权限,对转储视图具有 SHOW VIEW 权限,TRIGGER 转储触发器,如果未使用 --single-transaction 选项,则为 LOCK TABLES。某些选项可能需要其他权限,如选项描述中所述。

你说你的评论

有一个触发器但不需要(在备份中)

你要么需要TRIGGER 权限或者你可以像这样发出 mysqldump

mysqldump -h host -u backup -p database --skip-triggers | gzip > /tmp/test.gz

试一试 !!!

相关内容