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