Я пытаюсь настроить logrotate для файлов журнала mariadb, Environment:
система: RHEL 8.2
logrotate: 3.14.0
mariadb: 10,4
файл
/var/lib/mysql/SITE2-L-MANAGEDPKI-01.log{
missingok
notifempty
copytruncate
daily
minsize 1M
maxsize 1G
rotate 10
dateext
dateformat .%Y-%m-%d
compress
delaycompress
sharedscripts
postrotate
# just if mysqld is really running
if test -x /usr/bin/mysqladmin && \
env HOME=/root/ /usr/bin/mysqladmin ping &>/dev/null
then
/usr/bin/mysqladmin --local flush-error-log \
flush-engine-log flush-general-log flush-slow-log
fi
endscript
}
Я получил этот вывод, пытаясь запустить скрипт
[root@SITE2-L-MANAGEDPKI-01 mysql]# logrotate --force /etc/logrotate.d/mariadb
/usr/bin/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/lib/mysql/SITE1-L-MANAGEDPKI-01.log
и я получил этот результат файлов журнала, файл вращается, но mariadb перестает записывать в исходный файл
1.9M SITE2-L-MANAGEDPKI-01.ERR
0 SITE2-L-MANAGEDPKI-01.log
247M SITE2-L-MANAGEDPKI-01.log.2020-06-18
что я могу сделать, чтобы это исправить?
Похоже, вы изменили исходную конфигурацию logrotate /etc/logrotate.d/mysql
который был отправлен с MariaDB здесь. Он содержит инструкции, которым необходимо следовать, а именно:
# This logname can be set in /etc/my.cnf
# by setting the variable "log-error"
# in the [mysqld] section as follows:
#
# [mysqld]
# log-error=/var/lib/mysql/mysqld.log
#
# If the root user has a password you have to create a
# /root/.my.cnf configuration file with the following
# content:
#
# [mysqladmin]
# password = <secret>
# user= root
#
# where "<secret>" is the password.
#
# ATTENTION: This /root/.my.cnf should be readable ONLY
# for root !