MariaDB Log Rotate Errors

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.

0
задан 24 October 2016 в 16:19
4 ответа

Утилита linux logrotate, она пытается повернуть журналы mariadb.

Вам следует заглянуть в файл:

/etc/logrotate.conf

Найдите раздел, в котором есть скрипты (, который отправляет вам письма ), Руководитель:

/var/log/mysql.log {
...
...
...
} 
/var/log/mysql/mysql.log {
...
...
...
}
/var/log/mysql/mariadb-slow.log {
...
...
...
}

Может, потому что учетные данные не вводятся. Либо удалите эти сценарии (хешируйте их), если они не нужны, либо предоставьте учетные данные для входа в MariaDB.

Надеюсь, это поможет!

1
ответ дан 4 December 2019 в 16:27

Кто-то недавно устанавливал пароль для root? Вашему ротации журнала, вероятно, понадобится /root/.my.cnf или /home/root/.my.cnf, в котором есть пароль, чтобы часть ротации журнала могла войти в mysql и очистить журналы.

У вас может быть один файл журнала mysql, который заполняется из-за неудачной ротации, возможно, даже удаленный файл, который остается открытым. Это будет исправлено при перезапуске или очистке связанных журналов. Если у вас закончилось место на диске, но вы не можете найти для этого большой файл, это легко может быть причиной. Удаленный файл фактически не удаляется, пока не будет удалено все использование, включая MariaDB или MySQL, которые удерживают его открытым для записи.

0
ответ дан 4 December 2019 в 16:27

Вероятно, вы установили / изменили пароль root.

Если вы используете Debian, вы можете обновить его в /etc/mysql/debian.cnf .

]
0
ответ дан 4 December 2019 в 16:27
  • зайдите в клиент 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
0
ответ дан 24 October 2020 в 18:02

Теги

Похожие вопросы