这看起来很奇怪,但是当
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
mysqldump 至少需要对转储表具有 SELECT 权限,对转储视图具有 SHOW VIEW 权限,TRIGGER 转储触发器,如果未使用 --single-transaction 选项,则为 LOCK TABLES。某些选项可能需要其他权限,如选项描述中所述。
你说你的评论
有一个触发器但不需要(在备份中)
你要么需要TRIGGER 权限或者你可以像这样发出 mysqldump
mysqldump -h host -u backup -p database --skip-triggers | gzip > /tmp/test.gz
试一试 !!!