Как я создаю пользователя MySQL только для чтения в целях резервирования с mysqldump?

Одно обходное решение должно было бы использовать опцию контекста с большим количеством строки:

tail -f file.log | grep -C 1000 --color Exception

Если Вы имеете ack это имеет опцию для этого:

tail -f file.log | ack --color --passthru Exception

13
задан 7 March 2011 в 09:30
3 ответа

Ой... из страницы справочника для mysqldump:

mysqldump does not dump the INFORMATION_SCHEMA database. If you name that database explicitly on the command line, mysqldump silently ignores it

Походит на любого, который страница справочника устарела (и она действительно повышает предупреждение), или automysqlbackup выполняет некоторые дополнительные проверки на дампе для information_schema.

Не уверенный, который это, но это не связано с пользовательскими предоставлениями.

Править

Да, это - ошибка в automysqlbackup версия 2.5.1 (использующий MySQL 5.1.41 в соответствии с Ubuntu 10.04) - это пытается скопировать information_schema когда это не было должно.

FIX: добавить information_schema к к DBEXCLUDE на строке 76 из сценария.

1
ответ дан 2 December 2019 в 21:28

Те полномочия должны быть всем, что это необходимо для mysqldump.

Так как Вы предоставили ТАБЛИЦЫ БЛОКИРОВКИ, и это - erroring на ТАБЛИЦАХ БЛОКИРОВКИ, кажется, что полномочия непоследовательны. Вы выполнили a FLUSH PRIVILEGES?

4
ответ дан 2 December 2019 в 21:28

Создать пользователя

GRANT USAGE ON *.* TO 'dump'@'localhost' IDENTIFIED BY 'plaintext-pass';
GRANT SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER ON `my-db`.* TO 'dump'@'localhost';

Проверить права

mysql> SHOW GRANTS FOR dump@'localhost';
+-----------------------------------------------------------------------------------------------+
| Grants for dump@localhost                                                                     |
+-----------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'dump'@'localhost'                                                      |
| GRANT SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER ON `my-db`.* TO 'dump'@'localhost' |
+-----------------------------------------------------------------------------------------------+

С помощью любимого редактора создать файл ~ / .my.cnf с помощью chmod 400

[client]
user=dump
password=plaintext-pass

Создать папку для дампов, как пример

mkdir ~/db-dumps

Проверьте, работает ли

mysqldump -u dump --hex-blob --routines --triggers my-db | gzip > ~/db-dumps/manual-my-db-dump-`date +%F`.sql.gz

При желании вы можете делать дампы ежедневно и еженедельно , а затем удалять все ежедневно старше месяца

#m h  dom mon dow   command
0  3  *   *   0,2-6 /usr/bin/mysqldump -u dump --hex-blob --routines --triggers my-db | gzip > ~/db-dumps/daily-my-db-dump-`date +%F`.sql.gz;
0  3  *   *   1     /usr/bin/mysqldump -u dump --hex-blob --routines --triggers my-db | gzip > ~/db-dumps/weekly-my-db-dump-`date +%F`.sql.gz;
0  4  *   *   *     /usr/bin/find ~/db-dumps/ -name "daily-*" -type f -mtime +30 -exec rm -f {} \;
0
ответ дан 6 February 2020 в 23:57

Теги

Похожие вопросы