日志简介
MySQL日志主要分为4类:
- 错误日志:记录MySQL服务的启动、运行或停止MySQL服务时出现的问题。
- 查询日志:记录建立的客户端连接和执行的语句。
- 二进制日志:记录所有更改数据的语句,可用于数据复制。
- 慢查询日志:记录所有执行时间超过long_query_time的所有查询或不使用索引的查询。
二进制日志
启动和设置二进制日志
my.ini中[mysql]组下面有几个设置是关于二进制日志的:
log-bin [=path/ [filename]]
exprie_logs_days = 10
max_binlog_size = 100M
查看二进制日志
SHOW BINARY LOGS语句可以查看当前的二进制日志文件个数及其文件名。可以通过mysqlbinlog命令查看日志内容。
删除二进制日志
删除所有二进制日志文件:
RESET MASTER
删除指定日志文件:
PURGE {MASTER|BINARY} LOGS TO 'log_name'
PURGE {MASTER|BINARY} LOGS BEFORE 'date'
使用二进制日志还原数据库
mysqlbinlog [option] filename |mysql -uuser -ppass
option是一些可选的选项,比较重要的两对option参数是--start-date、--stop-date、--start-position、--stop-position。
暂时停止二进制日志功能
修改配置文件,可以停止二进制日志,但是需要重启MySQL服务器。
还可以使用下面命令暂时停止:
SET sql_log_bin = {0|1}
0为暂停,1为恢复。
错误日志
启动和设置错误日志
[mysqld]
log-errror=[path/[file_name]]
如果没有指定文件名,默认为hostname.err。如果执行了FLUSH LOGS,错误日志文件会重新加载。
查看错误日志
SHOW VARIABLES LIKE ‘log_error’;
删除错误日志
mysqladmin -u root -p flush-logs
或者
flush logs;
通用查询日志
[mysqld]
log[=path / [filename]]
默认储存在MySQL数据目录中的hostname.log中
慢查询日志
[mysqld]
log-slow-queries[=path / [filename]]
long_query_time=n