MySQL logrotate ошибка

Я плохо знаком с Linux и имею, устанавливают VPS под управлением Ubuntu 16.04 с постфиксом, голубятней и rouncube, использующим mariadb для базы данных. Все это, кажется, работает хорошо, но я регулярно получаю следующее электронное письмо:

/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

Я сделал некоторый поиск и нашел сообщение, предлагающее, чтобы я создал/root/.my.cnf файл, который я сделал и с тех пор перезапустил сервер и т.д., но я все еще получаю ошибку. Содержание моего/root/.my.cnf следующие:

[mysqladmin]
password = *mypassword*
user = root

[mysql]
password = *mypassword*

Кто-либо знает, существует ли что-то, что я пропускаю или что-либо еще, что я должен настроить, чтобы заставить это использовать mysql пароль, возможно?

Спасибо

5
задан 26 January 2017 в 09:48

3 ответа

Это могло бы быть ошибкой в конфигурации 'запаса' при использовании mariadb в противоположность mysql, который еще не искоренялся, поскольку я неопределенно не забываю сталкиваться с чем-то подобным сам при отодвижении к mariadb от mysql.

Вы захотите посмотреть в /etc/logrotate.d/mysql-server для наблюдения то, что работает в, поствращаются. У Вас, вероятно, будет что-то вроде этого:

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

Ubuntu, вероятно, смотрит там, так попытайтесь смотреть в /etc/mysql/debian.cnf и видеть то, что установлено.

5
ответ дан 23 November 2019 в 09:12

AvatarKava получает нас, указал в правильном направлении, и его ответ будет работать на большинство людей. Если Вы все еще царапаете голову после добавления пользователя и пароля к /etc/mysql/debian.cnf файл (даже при том, что это говорит для не касания этого файла ха-ха!) затем:

удостоверьтесь, что у Вас есть кавычки вокруг Вашего пароля

особенно, если существуют специальные символы в Вашем пароле.

Другой взлом должен удалить --defaults-file=/etc/mysql/debian.cnf опция от mysqladmin управляет в /etc/logrotate.d/mysql-server. Если Вы удалите эту опцию, пользователь root (пользователь, который работает, то logrotate) будет все еще нуждаться в действительном пользователе и пароле для соединения с mysql, так удостоверьтесь, что у Вас есть надлежащий .my.cnf файл в корне/. Или в случае, изменениях в debian.cnf или в mysql-сервере мог быть перезаписан во время следующего обновления MariaDB, но поскольку AvatarKava указывает, Вам, вероятно, предложат, прежде чем обновление перезаписывает эти файлы. Худший случай, Вы начнете получать logrotate ошибки снова после обновления и должны будете внести те же изменения снова.

1
ответ дан 23 November 2019 в 09:12

В моем случае воссоздайте debian-sys-maint пользователя, было решение.

Вот то, как сделать это:

  1. Используйте вкладку SQL в своем phpmyadmin или, на Вашей консоли Linux, войдите в систему mysql с:

    mysql -u root -p

введите свой пароль root и продолжите

  1. выполните следующую команду:

    GRANT RELOAD, SHUTDOWN, PROCESS, SHOW DATABASES, SUPER, LOCK TABLES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'your-password'

можно найти 'Ваш-passowrd' в/etc/mysql/debian.cnf

# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = debian-sys-maint
password = your-password
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host     = localhost
user     = debian-sys-maint
password = your-password
socket   = /var/run/mysqld/mysqld.sock

Если у Вас есть следующее сообщение:

ОШИБКА 1819 (HY000): Ваш пароль не удовлетворяет требования текущей политики

необходимо будет изменить пароль, или можно выполнить следующие команды для временной деактивации политики паролей:

  1. uninstall plugin validate_password;

  2. GRANT RELOAD, SHUTDOWN, PROCESS, SHOW DATABASES, SUPER, LOCK TABLES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'your-password'

  3. INSTALL PLUGIN validate_password SONAME 'validate_password.so';

0
ответ дан 23 November 2019 в 09:12

Другие вопросы по тегам:

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