日志简介
MySQL日志分为四类:
- 二进制日志
- 错误日志
- 查询日志
- 慢查询日志
默认情况下所有的日志都是在MySQL目录中,启动日志功能会降低MySQL的性能,比如,在查询非常频繁的数据库中开启了查询日志,和慢查询日志,MySQL数据库会花费很多时间记录日志,日志还会占用大量空间
二进制日志
二进制日志主要是记录MySQL数据库的变化,,二进制包含了所有更新了数据或者潜在跟新了数据,二进制包含了每个更新数据库语句的执行时间信息,但是不包含没有修改任何数据的语句,二进制日志的目的是最大可能的恢复数据库
-
启动二进制日志
修改配置文件如下图,默认MySQL配置文件在 /etc/mysql/mysql.conf.d/mysql.conf windows的是 my.ini
把log_bin 和 server-id 打开就行
expire_logs_days 清除过期日志时间
max_binlog_size 单个文件大小限制,,如果二进制日志写入的内容大小超过给定值,日志就会回滚 -
show variables like ‘log_%’
查看日志变量
可以看到开启成功了
上图中 mysql-bin.index 里面是所有日志文件的清单,
mysq-bin.000001 和 mysq-bin.000002 是 产生的日志文件
删除二进制日志文件
-
使用 reset master
删除所有二进制文件,从000001开始编号
-
使用 purge master logs to “binlog.000003”
这条面命令将会删除 编号03之前的日志 -
purge master logs before “20160130”
将会删除2016.1.30 日之前创建的日志
show binary logs查看二进制日志
使用二进制恢复数据库
mysqlbinlog --stop-date=“2016-01-03”
将会把数据库到2016.1.30 日之前的数据恢复
暂时停止二进制功能
- 暂停
set sql_log_bin = 0 - 恢复
set sql_log_bin = 1
错误日志
错误日志包含了MySQL启动时和停止时的信息,还有MySQL在运行过程中出现的错误信息
查看错误日志
通用查询日志
使用通用查询日志,在mysql.conf中添加log参数
log = path/file.name
慢查询日志
log-slow-queries
long_query_time