Я використовую 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стіл? Що відбувається?
Редагувати:
GAH і зараз це працює. Я, можливо, раніше не працював з ПРИБІГАМИ ПРИМІТКИ.
Як осторонь, як часто це відбувається автоматично?
Редагувати:
Ні, це не працює. Запуск mysqldump -u username -p --all-databases > dump.sqlвручну не створює помилки, але не скидає інформацію_schema. automysqlbackupробить помилку.
mysqldump: mysqldump не скидає базу даних INFORMATION_SCHEMA. Якщо ви чітко називаєте цю базу даних у командному рядку, mysqldump мовчки ігнорує її. Здається, що або довідкова сторінка застаріла (і вона викликає попередження), абоautomysqlbackupвиконує деякі додаткові перевірки на дампinformation_schema. Не впевнений, що це, але це не пов’язано з грантами користувачів.