下記のような/etc/logrotate.d/mysqlのpostrotateを正常に動作させるには、mysqlのrootユーザのパスワードが必要。
# The log file name and location can be set in # /etc/my.cnf by setting the "log-error" option # in either [mysqld] or [mysqld_safe] section as # follows: # # [mysqld] # log-error=/var/lib/mysql/mysqld.log # # In case the root user has a password, then you # have to create a /root/.my.cnf configuration file # with the following content: # # [mysqladmin] # password =# user= root # # where " " is the password. # # ATTENTION: The /root/.my.cnf file should be readable # _ONLY_ by root ! /var/log/mysql/mysqld.log { # create 600 mysql mysql notifempty missingok # compress postrotate # just if mysqld is really running if test -x /usr/bin/mysqladmin && \ /usr/bin/mysqladmin ping &>/dev/null then /usr/bin/mysqladmin flush-logs fi endscript }
mysqlのrootユーザにパスワードが設定されていると、このままでは mysqladmin ping が正常に動作しない。
この問題を解決するために、上記スクリプトのコメントに記載されているとおり、/root/.my.cnf にパスワードを記述しておく。
# vim /root/.my.cnf [mysqladmin] password = パスワード user= root
ここで大切なのは、OSユーザroot以外が参照できないようにすること。
# chmod 600 /root/.my.cnf ←重要!
★ ここに記載の情報は、mysql 5.6で動作確認したものです。