MySQL не делает ошибки журналов в новый файл после вращения?

Вы могли бы рассмотреть (и это может зависеть в основном от версии VMware, которого Вы используете), конфигурирование доли NFS для хранилищ данных. Затем Вы перемещаете виртуальные серверы в долю NFS. Если сервер перестал работать, Вы соединяете другой и импортируете серверы к этому, то запускаете их.

Существуют чертовски много переменных, хотя, и нам нужно значительно больше информации о Вашей среде - версия VMware, роли серверов (NFS не может дать соответствующую производительность диска), и т.д...

14
задан 9 August 2012 в 06:15
5 ответов

В postrotate я перенаправляю stderr и stdout в журнал файл, чтобы увидеть, что происходит:

postrotate
    /usr/bin/mysqladmin flush-logs > /var/log/mysqladmin.flush-logs 2>&1
endscript

Я получаю следующее:

/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'

Похоже, mysqladmin не читает /root/.my.cnf во время logrotate.

Итак, попробуйте следующее:

postrotate
    env HOME=/root/ /usr/bin/mysqladmin flush-logs > /var/log/mysqladmin.flush-logs 2>&1
endscript

Источник:

12
ответ дан 2 December 2019 в 21:12

У меня была аналогичная проблема.

Я не перезапускал MySQL после добавления /root/.my.cnf , поэтому команда postrotate flush не была запущена .

Как только я перезапустил MySQL, он прочитал корневой файл my.cnf и работал должным образом.

1
ответ дан 2 December 2019 в 21:12

В моем случае блок в /etc/logrotate.d/mysql выглядел немного иначе:

postrotate
        test -x /usr/bin/mysqladmin || exit 0

        if [ -f `my_print_defaults --mysqld | grep -oP "pid-file=\K[^$]+"` ]; then
            # If this fails, check debian.conf!
            mysqladmin --defaults-file=/etc/mysql/debian.cnf flush-logs
        fi
endscript

Обратите внимание на комментарий: «Если это не удается, проверьте debian .conf! " и команда с параметром - defaults-file = / etc / mysql / debian.cnf . В этом файле был такой же раздел [client] , определяющий пользователя root с пустым паролем. Таким образом, очевидно, что тот же самый пароль, который использовался в /root/.my.cnf , также должен был быть помещен в этот файл. С точки зрения безопасности, /etc/mysql/debian.cnf аналогичен /root/.my.cnf : принадлежит root: root и изменен на 0600 .

0
ответ дан 2 December 2019 в 21:12

Итак, в моем случае существует проблема с правами доступа для пользователя debian-sys-maint из-за того, что galera-cluster имеет то же целостность на каждом узле, хотя каждый узел устанавливается индивидуально пользователем debian для каждого из них, файл конфигурации - /etc/mysql/debian.cnf

Итак, в logrotate файл:

postrotate
    test -x /usr/bin/mysqladmin || exit 0
    if [ -f `my_print_defaults --mysqld | grep -oP "pid-file=\K[^$]+"` ]; then
        # 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
    fi
endscript

Решение настолько простое, просто измените пароль пользователя debian-sys-maint на одном узле и установите пароль в файле '/etc/mysql/debian.cnf' на всех узлах

SET PASSWORD FOR 'debian-sys-maint'@'localhost' = password('YOUR PASSWORD');

Надеюсь, он будет полезен, как мой.

0
ответ дан 2 December 2019 в 21:12

В моем случае. Мне нужно было установить - defaults-file = "/ root / .my.cnf" на /root/.my.cnf в / usr / local / mysql / bin / mysqladmin --defaults-file = "/ root / .my.cnf" ping и / usr / local / mysql / bin / mysqladmin --defaults-file = "/ root / .my. cnf "flush-logs

/etc/logrotate.d/mysql

/var/log/mysql/mysql_general_log.log
/var/log/mysql/error.log {
        create 600 mysql mysql
        notifempty
        daily
        rotate 5
        missingok
        compress
    postrotate
    # just if mysqld is really running
    if test -x /usr/local/mysql/bin/mysqladmin && \
        /usr/local/mysql/bin/mysqladmin --defaults-file="/root/.my.cnf" ping &>/dev/null
    then
        /usr/local/mysql/bin/mysqladmin --defaults-file="/root/.my.cnf" flush-logs
    fi
    endscript
}

Мой /root/.my.cnf имеет

-rw ------- 1 root root 43 21 марта 20:51 .my.cnf

[mysqladmin]
password= 111
user= root
0
ответ дан 21 March 2020 в 22:36

Теги

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