这些日志的配置可在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表