Некоторое время назад мне пришлось сбросить забытый пароль root для mysql (строго говоря, mariadb) с помощью подходящего руководства (возможно, это https://devanswers.co/how-to-reset-mysql-root-password-ubuntu/ ) и использовал надежный пароль. Хотя после этого все, казалось, работало нормально, одна проблема продолжает появляться: ежедневное задание cron для logrotate не выполняется:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
error: error running shared postrotate script for '/var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log /var/log/mysql/mariadb-slow.log /var/log/mysql/error.log '
run-parts: /etc/cron.daily/logrotate exited with return code 1
Поскольку конфигурация logrotate содержит полезную строку
# If this fails, check debian.conf!
[sic], я взглянул на /etc/mysql/debian.cnf
:
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = root
password =
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = root
password =
socket = /var/run/mysqld/mysqld.sock
basedir = /usr
Ясно, что вновь созданный пароль должен был быть добавлен в этот файл (дважды, или у меня возникнут проблемы при следующем обновлении программного обеспечения), но этого не произошло. Хотя я могу сделать это сейчас, это будет противоречить первой строке DO NOT TOUCH!
Я полагаю, что в какой-то момент этот файл будет перезаписан системой? Если да, то в каком другом месте можно сохранить новый пароль, который я создал «вручную»?