Ошибка разрешения дампа 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'
Есть ли причина, по которой это не сработало бы?
РЕДАКТИРОВАТЬ
Добавление разрешения на перезагрузку я могу сделать
FLUSH TABLES WITH READ LOCK
так что разрешения нет
1 ответ
Из документации MySQL поmysqldump
Для mysqldump требуется как минимум привилегия SELECT для дампированных таблиц, SHOW VIEW для дампированных представлений, TRIGGER для дампированных триггеров и LOCK TABLES, если опция --single-action не используется. Для некоторых опций могут потребоваться другие привилегии, как указано в описании опций.
Вы сказали в своем комментарии
Есть триггер, но он не нужен (в резервной копии)
Вам либо нужна привилегия TRIGGER, либо вы можете выполнить mysqldump следующим образом
mysqldump -h host -u backup -p database --skip-triggers | gzip > /tmp/test.gz
Попробуйте!