2010年7月15日 星期四

MySQL Log logrotate 设置

MySQL 5 版以上



记录MySQL系统产生的错误信息和SQL相关信息及复制等信息

[mysqld]

log_error=/var/log/mysqld.log



记录MySQL DDl操作的信息(insert/update/delete) 供 slave 用

[mysqld]

log-bin=/log/hostname-bin #log 目录拥有者和所属组为mysql:mysql


记录慢查询相关信息

[mysqld]

slow_query_log_file=/var/log/mysql-slow.log

long_query_time=1



一般来说,MySQL 提供三类的 LOG:

1. Binary Log:记录所有对于数据库的操作

2. General Log:记录client到MYSQL DB 的所有查询信息,开启,产用的日志非常大

3. Slow Log:记录所有的慢查询 Slow Query


编译安装的MySQL Server 的 err-log 与 Slow Log 不会 Logrotate。例如在 Linux 系統中可以在 /etc/logrotate.d 中加上 mysqld,内容为:


/var/log/mysqld.log /var/log/mysql-slow.log {

weekly

rotate 4

create 0644 mysql mysql

missingok

notifempty

sharedscripts

postrotate

# 用來 flush-logs 的用户需要有 RELOAD 的权限

/usr/bin/mysqladmin -u 用户 -p密码 flush-logs

endscript

}


设置如下

vi /etc/my.cnf

[mysqld]

log_error=/var/log/mysqld.log

log-bin=/log/hostname-bin

slow_query_log_file=/var/log/mysql-slow.log

long_query_time=1





vi /etc/logrotate.d/mysqld


/var/log/mysqld.log /var/log/mysql-slow.log {

weekly

rotate 4

mail liuguan@gmail.com ##发送到指定管理员邮箱
mailfirst

create 0644 mysql mysql

missingok

notifempty

sharedscripts

postrotate

# 用來 flush-logs 的用户需要有 RELOAD 的权限

/usr/bin/mysqladmin -u 用户 -p密码 flush-logs

endscript

}




Debug

logrotate -fv /etc/logrotate.d/mysqld

沒有留言:

張貼留言