2011年8月20日土曜日

MySQL のログをローテートする

MySQLのログをローテートします。
CentOS 5.5 を利用しています。

参考:http://dev.mysql.com/doc/refman/5.1/ja/log-file-maintenance.html

Linux環境でオフィシャルの rpm でインストールしていれば、mysql-log-rotate というスクリプトファイルが
インストールされているので、これを利用してみます。
mysqladmin コマンドから flush-logs アクションを実行するのにrootユーザーのパスワードの指定が
必要です。

$ locate mysql-log-rotate
/usr/share/mysql/mysql-log-rotate

logrotated から利用するので /etc/logrotate.d にコピーします。
# cp /usr/share/mysql/mysql-log-rotate /etc/logrotate.d/mysql

ログファイルのパスを設定します。
# vi /etc/logrotate.d/mysql


/var/lib/mysql/mysqld.log {
# create 600 mysql mysql

/var/lib/mysql/mysql.log {
# create 600 mysql mysql

などに変更する。

/root/.my.cnf に mysql-log-rotate アクションを実行するために実行ユーザーとパスワードを設定します。
sudo vi /root/.my.cnf
[mysqladmin]
password = "password"
user= root

パーミッションを変更します。
chmod 600 /root/.my.cnf

0 件のコメント:

コメントを投稿