私はLinuxが初めてで、データベースにmariadbを使用して、postfix、dovecot、およびrouncubeでUbuntu 16.04を実行するVPSをセットアップしました。すべて正常に動作しているようですが、定期的に次のメールを受信します。
/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ファイルを作成する必要があることを示唆する投稿を見つけましたが、まだエラーを受け取っています。 my /root/.my.cnfの内容は次のとおりです。
[mysqladmin]
password = *mypassword*
user = root
[mysql]
password = *mypassword*
Mysqlのパスワードを使用するためにこれを取得するために設定しなければならないものがあるかどうか、誰かが私に足りないものがあるかどうかを知っていますか?
ありがとう
これは、mysqlからmariadbに移行するときに自分に似た何かにぶつかったことを漠然と覚えているので、まだ打ち切られていないmysqlに対して、mariadbを使用する場合の「ストック」構成のバグかもしれません。
/etc/logrotate.d/mysql-server
を調べて、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
Ubuntuはおそらくそこを探しているので、/etc/mysql/debian.cnf
を見て、何が設定されているかを確認してください。
AvatarKavaは私たちに正しい方向を指し示し、彼の答えはほとんどの人に役立つでしょう。 /etc/mysql/debian.cnf
ファイルにユーザーとパスワードを追加した後も頭を悩ましている場合(このファイルには触れないでください!):
特にパスワードに特殊文字が含まれる場合。
別のハックは、--defaults-file=/etc/mysql/debian.cnf
のmysqladminコマンドから/etc/logrotate.d/mysql-server
オプションを削除することです。このオプションを削除しても、rootユーザー(logrotateを実行するユーザー)は、mysqlに接続するために有効なユーザーとパスワードを必要とするため、/ rootに適切な.my.cnfファイルがあることを確認してください。どちらの場合でも、debian.cnfまたはmysql-serverへの変更は次のMariaDBアップグレード中に上書きされる可能性がありますが、AvatarKavaが指摘しているように、アップグレードがこれらのファイルを上書きする前にプロンプトが表示されます。最悪の場合、アップグレード後に再びlogrotateエラーが発生し始め、同じ変更を再度行う必要があります。