Я использую 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. Не уверен, что это, но это не связано с грантами пользователей.