Automysqlbackup не использует настроенный пароль
У меня установлен automysqlbackup в Debian. Я добавил USERNAME и PASSWORD в , но при запуске automysqlbackup я получаю вывод:
/etc/cron.daily/automysqlbackup:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO
как будто бы я не настраивал никаких учетных данных.
Конфигурация automysqlbackup — это конфигурация по умолчанию с двумя добавленными в конце строками:
USERNAME=root
PASSWORD="the root password"
Конфигурация по умолчанию пытается получить учетные данные от/etc/mysql/debian.cnf
(с использованием grep во фрагменте bash), который содержит предупреждение о том, что файл устарел и больше не содержит пароля администратора при новых установках.
Я попробовал automysqlbackup со strace, и он, по крайней мере, читает/etc/default/automysqlbackup
даже если он не запущен cron. Однако он не использует пароль.
1 ответ
Проблема заключалась в том, чтобы добавить ИМЯ ПОЛЬЗОВАТЕЛЯ и ПАРОЛЬ в конец файла, хотя файл оценивается как сценарий оболочки и содержит некоторыеmysql
команды для вывода имен баз данных, для которых уже требуется вход в систему.
Похоже, что он также делает серьезные предположения о том, что он доступен и содержит необходимые учетные данные, находя такие базы данных:
DBNAMES=`mysql --defaults-file=/etc/mysql/debian.cnf --execute="SHOW DATABASES" | awk '{print $1}' | grep -v ^Database$ | grep -v ^mysql$ | grep -v ^performance_schema$ | grep -v ^information_schema$ | tr \\\r\\\n ,\ `
для которого, вероятно, потребуются параметры для использования$USERNAME
и$PASSWORD
вместо устаревшего файла настроек по умолчанию.
Я знаю, что старые пакеты mysql/mariadb настраивали пользователя обслуживания вdebian.cnf
но новая установка не содержит такой учетной записи, поэтому сценарий уже терпит неудачу при попытке составить список баз данных.
Файл конфигурации уже содержит закомментированную альтернативу, которая, похоже, работает:
DBNAMES=`find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f5 | grep -v ^mysql\$ | tr \\\r\\\n ,\ `
Должен сказать, что обе линии кажутся мне немного хрупкими. Я не уверен, что это когда-нибудь не сломается, и может ли весь сценарий automysqlbackup или, по крайней мере, его конфигурация не быть самым надежным решением.