mysql日志详解
1.错误日志my.cnf 默认开启
log_error=/data/mysql/logs/error.log //错误日志路径
2.一般查询日志,记录客户端所有操作
general_log = 0 //默认值是0,即不开启,可设置为1
general_log_file = /data/mysql/logs/general.log //指定日志位置及名称
log-output=[value,.....] //用于定义general_log和slow_log的输出目标
value=[TABLE|FILE|NONE] //value取值
TABLE:将日志记录到数据库表中,general_log表或slow_log表
FILE:将日志记录到文件中
NONE:不记录
注意:
1.如果log-output=NONE即使开启日志也不会写入日志
2.即使log-output不是NONE,到时没有开启日志也不会写入日志
3.慢查询日志,记录查询时间超过设定时间的sql语句
slow_query_log = 1 //默认值是0,即不开启,可设置为1
slow_query_log_file = /data/mysql/logs/slow.log //设置日志路径,默认$datadir/主机名_slow.log
long_query_time = 3 //超时时间,单位秒,默认10
log_output = FILE
log-output=[value,.....] //用于定义general_log和slow_log的输出目标
value=[TABLE|FILE|NONE] //value取值
TABLE:将日志记录到数据库表中,general_log表或slow_log表
FILE:将日志记录到文件中
NONE:不记录
4.二进制日志,记录数据所有写操作
log-bin = /data/mysql/logs/mybinlog
#mysql服务ID,保证整个集群环境中唯一,取值范围: 1 - 2的32次方-1,默认为1
server-id = 10
#是否只读,1 代表只读,0 代表读写
read-only=0
#次要参数##################################################
#指定binlog模式,建议设置为ROW。
binlog_format = row
#控制二进制日志文件保留天数,默认值为0,表示不自动删除,可设置为0~99。
expire_logs_days = 15
#忽略的数据,指不需要同步的数据库
binlog-ignore-db=数据库名
#指定同步的数据库
binlog-do-db=数据库名
改文件是二进制不是文本,使用mysqlbinlog工具查看
5.中继日志,用于主从复制,master发送给slave服务器,slave将日志保存到自己的中继日志中,然后执行自己的relay_log的sql与master保持数据一致
relay_log = /data/mysql/logs/relay-bin
relay_log_purge = 1 //是否自动清空不再需要中继日志,默认值为1(启用)。
relay_log_recovery = 1 //当 slave 从库宕机后,假如 relay log 损坏了,导致一部分中继日志没有处理,则自动放弃所有未执行的 relay log ,并且重新从 master 上获取日志,这样就保证了 relay log 的完整性。默认情况下该功能是关闭的,将 relay_log_recovery 的值设置为1可开启此功能。