Every night, I get an email from my server with the following:
/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.log /var/log/mysql/mysql.log /var/log/mysql/mariadb-slow.log '
run-parts: /etc/cron.daily/logrotate exited with return code 1
I don't know why this is happening, and I can't figure out how to stop the error.
Утилита linux logrotate, она пытается повернуть журналы mariadb.
Вам следует заглянуть в файл:
/etc/logrotate.conf
Найдите раздел, в котором есть скрипты (, который отправляет вам письма ), Руководитель:
/var/log/mysql.log {
...
...
...
}
/var/log/mysql/mysql.log {
...
...
...
}
/var/log/mysql/mariadb-slow.log {
...
...
...
}
Может, потому что учетные данные не вводятся. Либо удалите эти сценарии (хешируйте их), если они не нужны, либо предоставьте учетные данные для входа в MariaDB.
Надеюсь, это поможет!
Кто-то недавно устанавливал пароль для root? Вашему ротации журнала, вероятно, понадобится /root/.my.cnf или /home/root/.my.cnf, в котором есть пароль, чтобы часть ротации журнала могла войти в mysql и очистить журналы.
У вас может быть один файл журнала mysql, который заполняется из-за неудачной ротации, возможно, даже удаленный файл, который остается открытым. Это будет исправлено при перезапуске или очистке связанных журналов. Если у вас закончилось место на диске, но вы не можете найти для этого большой файл, это легко может быть причиной. Удаленный файл фактически не удаляется, пока не будет удалено все использование, включая MariaDB или MySQL, которые удерживают его открытым для записи.
Вероятно, вы установили / изменили пароль root.
Если вы используете Debian, вы можете обновить его в /etc/mysql/debian.cnf
.
зайдите в клиент mysql/mariadb и убедитесь, что пользователь debian-sys-maint с пустым паролем уже присутствует в таблице user из mysql база данных
по умолчанию /etc/mysql/debian.cnf
должен содержать debian-sys-maint как user вместо корень
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = debian-sys-maint
password =
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = debian-sys-maint
password =
socket = /var/run/mysqld/mysqld.sock
basedir = /usr