Я обновляю несколько хостов mysql (MariaDB) с Ubuntu 14.04 до 16.04 и заметил mysql_secure_installation
похоже, не устанавливает пароль root в БД, хотя он меня просил об этом.
Я изменил корневой проход из командной строки mysql, но позже тем же вечером logrotate
процесс выдал несколько ошибок по электронной почте:
/etc/cron.daily/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
Я проверил /etc/logrotate.d/mysql-server
сценарий logrotate и его вызов mysqladmin
:
...
# If this fails, check debian.conf!
mysqladmin --defaults-file=/etc/mysql/debian.cnf --local flush-error-log \
flush-engine-log flush-general-log flush-slow-log
...
Поскольку в комментарии говорится о проверке debian.conf, я проверил его:
# 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
Так.. debian.cnf
по умолчанию для root не установлен пароль. В 14.04 этот файл заполнен debian-sys-maint
аккаунт, а не root.
Я мог бы вернуться и установить свой пароль root в mysql, а затем сбросить этот пароль в /etc/mysql/debian.cnf
но мне действительно интересно, не что-то не так с установкой, что испортило debian-sys-main
аккаунт или это просто «новый» способ установки Mysql?