分类: Mysql/postgreSQL
2010-01-21 13:20:55
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 ##发送到指定管理员邮箱
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