Я использую automysqlbackup
сценарий для выгрузки своих баз данных mysql, но я хочу, чтобы у меня был доступ только для чтения, чтобы я не сохранял пароль своей корневой базы данных в текстовом файле.
Я создал такого пользователя:
grant select, lock tables on *.* to 'username'@'localhost' identified by 'password';
Когда я бегу mysqldump
(через automysqlbackup
или напрямую), я получаю следующее предупреждение:
mysqldump: Got error: 1044: Access denied for user 'username'@'localhost' to database 'information_schema' when using LOCK TABLES
Я делаю это неправильно? Нужны ли мне дополнительные гранты для моего пользователя только для чтения? Или можно только root
заблокировать information_schema
стол? В чем дело?
Редактировать:
ГАХ и теперь это работает. Возможно, я раньше не запускал FLUSH PRIVILEGES.
Кроме того, как часто это происходит автоматически?
Редактировать:
Нет, это не работает. Запуск mysqldump -u username -p --all-databases > dump.sql
вручную не генерирует ошибку, но не выводит информационную_схему. automysqlbackup
действительно вызывает ошибку.
mysqldump
: mysqldump не создает дамп базы данных INFORMATION_SCHEMA. Если вы в явном виде называете эту базу данных в командной строке, mysqldump молча игнорирует ее. Кажется, что либо страница руководства устарела (и она выдает предупреждение), либоautomysqlbackup
выполняет некоторые дополнительные проверки для дампаinformation_schema
. Не уверен, что это, но это не связано с грантами пользователей.