标签:
在 MySQL 中,有 4 种不同的日志,分别是错误日志、二进制日志、查询日志和慢查询日志。
错误日志记录了 MySQL 启动和停止时以及服务器在运行过程中发生严重错误时的相关信息。
mysql> SHOW VARIABLES LIKE ‘log_error%‘; +---------------+---------------+ | Variable_name | Value | +---------------+---------------+ | log_error | .\HUEY-PC.err | +---------------+---------------+
编辑 my.ini,修改 log-error 参数:
# Error Logging. log-error="HUEY-PC.err"
错误文件为普通的文本文件,可直接查看。
二进制日志记录了所有的 DDL(数据定义语言)语句和 DML(数据操纵语言)语句,但是不包括数据查询语句。
mysql> SHOW VARIABLES LIKE ‘log_bin%‘; +---------------------------------+-------+ | Variable_name | Value | +---------------------------------+-------+ | log_bin | OFF | | log_bin_basename | | | log_bin_index | | | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF | +---------------------------------+-------+
编辑 my.ini:
# Binary Logging. log-bin="HUEY-PC-bin"
保存 my.ini 更改,重启 MySQL 服务。
使用 mysqlbinlog 工具来查看二进制日志的内容:
D:\ProgramData\MySQL\MySQL Server 5.6\data>mysqlbinlog HUEY-PC-bin.000001
清除所有日志(不存在主从复制关系):
mysql> RESET MASTER;
清除指定日志之前的所有日志:
mysql> PURGE MASTER LOGS TO ‘HUEY-PC-bin.000005‘;
清除某一时间点前的所有日志:
mysql> PURGE MASTER LOGS BEFORE ‘2015-01-01 00:00:00‘;
清除 n 天前的所有日志:
mysql> PURGE MASTER LOGS BEFORE CURRENT_DATE - INTERVAL 10 DAY;
在 my.ini 中配置 expire_logs_days 参数指定二进制日志的有效天数,MySQL 会自动删除过期的二进制日志。expire_logs_days 设置在服务器启动或者 MySQL 切换二进制日志时生效,因此,如果二进制日志没有增长和切换,服务器不会清除老条目。
# 二进制日志的有效天数 expire_logs_days = 5
默认情况下查询日志是关闭的。查询日志记录了客户端的所有操作,而二进制日志不记录只查询数据的语句。在并发环境易产生大量日志信息而导致大量磁盘 I/O,影响 MySQL 的性能,通常情况下不建议启用查询日志。
mysql> SHOW VARIABLES LIKE ‘general_log%‘; +------------------+-------------+ | Variable_name | Value | +------------------+-------------+ | general_log | ON | | general_log_file | HUEY-PC.log | +------------------+-------------+
编辑 my.ini,修改 general-log 参数为 1,同时设定 log-output 参数(日志输出类型)和 general_log_file 参数(查询日志路径):
# General logging.: log-output=FILE general-log=1 general_log_file="HUEY-PC.log"
保存 my.ini 更改,重启 MySQL 服务。
编辑 my.ini,设置 general-log 参数为 0:
# General logging. log-output=NONE general-log=0 general_log_file="HUEY-PC.log"
保存 my.ini 更改,重启 MySQL 服务。
慢查询日志记录了所有执行时间超过 long_query_time 秒的 SQL 语句。
mysql> SHOW VARIABLES LIKE ‘slow_query_log%‘; +---------------------+------------------+ | Variable_name | Value | +---------------------+------------------+ | slow_query_log | OFF | | slow_query_log_file | HUEY-PC-slow.log | +---------------------+------------------+
编辑 my.ini,设置 slow-query-log 参数为 1,同时设定 log-output 参数(日志输出类型)、slow-query-log_file 参数(慢查询日志路径)和 long_query_time 参数:
# Slow logging. log-output=FILE slow-query-log=1 slow_query_log_file="HUEY-PC-slow.log" long_query_time=10
保存 my.ini 更改,重启 MySQL 服务。
编辑 my.ini,设置 slow-query-log 参数为 0:
# Slow logging. log-output=NONE slow-query-log=0 slow_query_log_file="HUEY-PC-slow.log" long_query_time=10
标签:
原文地址:http://www.cnblogs.com/huey/p/4447821.html