MySQL的五种日志

这些日志的配置可在mysqld.conf中获取,如下:

c80k2@c80k2-Vostro-3667❯/etc/mysql/mysql.conf.d$ vim mysqld.cnf

1.error错误日志: 记录启动、运行或停止mysqld时出现的问题

# Error log - should be very few entries.
#
# log_error = /var/log/mysql/error.log

2.查询日志: 记录建立的客户端连接和执行的所有语句(包括错误的)。
        log=d:/mysql_log.txt
3.  binlog二进制日志: 记录所有更改数据的语句、还用于主从复制

# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
#       other settings you may need to change.
server-id               = 1
log_bin                 = /var/log/mysql/mysql-bin.log
expire_logs_days        = 10
max_binlog_size   = 100M
#binlog_do_db           = include_database_name
#binlog_ignore_db       = include_database_name

此项设置可以用来很容易地回滚备份日志以及用来数据库备份。注意: 如果你正在设置一个备份从库,参看README.Debian来查看其他你可能改变的设置。

注:log-update 更新日志已经被 log-bin 取代了,如果定义了会导致服务不可启动

4.慢日志: 记录所有执行时间超过long_query_time秒的所有查询

# Here you can see queries with especially long duration
#log_slow_queries       = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes

这里你可以看到耗时特别长的语句,单位为秒。


5. 通用日志: 会将所有到达MySQL Server的SQL语句记录下来。一般不会开启开功能,因为log的量会非常庞大。但个别情况下可能会临时的开一会儿general log以供排障使用。开启方法:

a, 在mysqld.conf配置文件中进行配置,如下:

# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file        = /var/log/mysql/mysql.log
#general_log             = 1

注意这里的注释部分: 请注意这个日志类型是性能杀手,从5.1版本开始你可以在mysql正在执行的过程中开启这个日志,也就是说可以直接启动就应用,而不需要重新启动mysql,实现了热启动。

b, 通过mysql语句开启,如下:

mysql>set global general_log_file='/tmp/general.lg';    #设置路径
mysql>set global general_log=on;    # 开启general log模式
mysql>set global general_log=off;   # 关闭general log模式

# 设置general log保存路径 
# 注意在Linux中,此日志路径只能设置到 /tmp 或 /var 文件夹下,设置其他路径出错 
# 需要root用户才有访问此文件的权限

c, 将日志记录在表中

shell代码

mysql>set global log_output='table'

运行后, 可以在mysql数据库下查找 general_log表

猜你喜欢

转载自my.oschina.net/u/3412738/blog/1799749