Забота о резервном копировании базы данных MySQL с использованием mysqldump - PullRequest
2 голосов
/ 07 мая 2011

Если бы мне нужно было создать резервную копию базы данных MySQL с помощью mysqldump и вызвать ее с помощью PHP 'system' или аналогичной функции, я должен включить пароль в строку, чтобы автоматизировать его.

Затем я могу (например), либо вызвать функцию php вручную (т.е. через ссылку), либо запустить ее как задание cron.

Моя проблема:

  1. Учитывая, что БД находится на Ubuntu (Server) или другом варианте Linux, разве это не будет плохой идеей, поскольку следующий человек, входящий в систему на сервере, распознает пароль БД?

  2. Очевидно, мы не говорим о пароле root.Итак, вторая часть вопроса заключается в том, какие привилегии могут быть предоставлены учетной записи пользователя, которая будет использоваться только для создания резервных копий?

Спасибо, что поделились!

Ответы [ 2 ]

2 голосов
/ 07 мая 2011

Вы можете поместить пароль в файл с соответствующими заблокированными привилегиями, затем сделать

cat passwd.txt|mysqldump -p  dump_options_here

Как минимум, вам потребуются SELECT, LOCK_TABLES и, возможно, RELOAD, если вы находитесь в ситуации репликации и вам необходимо очистить журналы.

2 голосов
/ 07 мая 2011

Разве вы не поместите пароль БД в файл PHP (или ini-файл) в любом случае для вашего реального приложения? У вас не установлен phpmyadmin (а ​​в его конфигурационном файле вы можете видеть незашифрованные пароли)?

...