Ошибка разрешения дампа 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

Попробуйте!

Другие вопросы по тегам