一、配置文件分类与参数
- 错误日志
数据库启停过程中错误,运行过程中的异常。
保存方式: 文件
启用方式:无需使用开关参数启用,默认开启
相关参数
文件位置参数log_error,如果不指定值默认在DATADIR目录下,名称为host_name.error。
2.二进制(bin)日志
所有DDL和DML但不包含查询语句。
保存方式: 文件
启用方式:需要配置文件中设置开关参数启用,默认关闭(OFF)
文件位置参数log_bin,如果不指定名称,名称为host_name-bin.NUM;如果只指定名称,以指定名称。均默认放到DATADIR目录下。
相关参数
binlog_format=STATEMENT/ROW/MIXED,日志格式控制,默认自动开启。
expire_logs_days=N,日志保存周期,默认为0,无限制。
也可使用命令删除SQL命令行RESET MASTER 或 PERGE MASTER LOGS
读取命令
mysqlbinlog
使用场景:高可用主从复制、数据库恢复时使用
3.查询日志
全部SQL语句包含select。
保存方式: 文件 或 表(general_log)
要永久生效,需要配置文件中设置开关参数启用,默认关闭(OFF)
文件位置参数general_log,参数已经显示设置设置为 1 或不设置均表示启用,设置为0 表示禁用。
相关参数
general_log_file,如果未指定值,或者未显示设置log_output的值,默认放到DATADIR目录下hostname.log
4.慢查询日志
全部超过参数long_query_time且扫描记录数不小于long_query_time的SQL语句,管理语句和不适用索引的select不记录。
保存方式: 文件 ,日志文件中可以精确到微妙 或 表(slow_log),表中记录只能精确到秒。
启用方式:要永久生效,需要配置文件中设置开关参数启用,默认关闭(OFF)
文件位置参数slow_query_log,参数已经显示设置,值设置为 1 或不设置均表示启用,设置为0 表示禁用。
相关参数
slow_query_log_file ,如果未指定值,默认hostname-slow.log放到DATADIR目录下
log_output = file,table,可以指定其一或全部选择;
相关工具
msqldumpslow 对慢日志进行分类,建议正常情况下开启设置,并经常查看。
使用场景:SQL优化,服务器性能诊断。
5.第三方日志工具
慢查询日志、查询日志、二进制日志、用户自定义类型日志查看工具
mysqlsla
二、配置文件举例
[[email protected] mysql]# pwd
/opt/mysql
[[email protected] mysql]# vi my.cnf
# Start of my.cnf file
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
####### log setting ########
### bin log ###
log-bin
binlog_format = STATEMENT
expire_logs_days = 7
### slow log ###
slow_query_log = 1
log_output = file
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# End of my.cnf file
三、验证配置
1.二进制日志
mysql> show variables like "log_bin";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | ON |
+---------------+-------+
1 row in set (0.00 sec)
mysql> show variables like "binlog_format%";
+---------------+-----------+
| Variable_name | Value |
+---------------+-----------+
| binlog_format | STATEMENT |
+---------------+-----------+
1 row in set (0.00 sec)
mysql> show variables like "expire_logs_days";
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| expire_logs_days | 7 |
+------------------+-------+
1 row in set (0.00 sec)
2.慢查询日志
mysql> show variables like "slow_query_log%";
+---------------------+--------------------------------+
| Variable_name | Value |
+---------------------+--------------------------------+
| slow_query_log | ON |
| slow_query_log_file | /opt/mysql/data/mdb01-slow.log |
+---------------------+--------------------------------+
2 rows in set (0.00 sec)
mysql> show variables like "log_output%";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output | FILE |
+---------------+-------+
1 row in set (0.01 sec)
mysql>