MySQL日志分类
1.错误日志(error log)
默认开启,记录了系统启动、运行以及停止过程中遇到的一些问题。
-- 获得错误日志的存储位置
SHOW GLOBAL VARIABLES LIKE 'log_error';
2.普通日志(general log)
默认关闭,记录了所有CRUD操作日志,生产环境下不建议开启,在高并发下会导致频繁的IO操作,影响mysql的性能。开启后会全量记录所有的SQL操作记录。
-- 查询日志状态与存储位置
SHOW VARIABLES LIKE '%general_log%';
-- 开启日志
SET GLOBAL general_log = 'ON';
3.慢日志(slow log)
默认关闭,记录了执行时间比较慢的语句。生产环境可以开启,找出对应业务执行的慢SQL,后续进行SQL优化,提升执行效率。
-- 查询慢日志参数
SHOW VARIABLES LIKE 'slow_query_log%';
-- 慢查询SQL的时间阈值,单位秒,默认10秒
SHOW VARIABLES like 'long_query_time';
4.二进制日志(binlog/binary log)
默认关闭,只记录数据表结构与数据表的数据变更SQL, 不会记录SELECT与SHOW语句。它是开发与运维中非常重要的日志,可以用它进行数据恢复,msql的主从数据复制。开启与关闭只能通过修改配置文件进行,不能通过命令操作。我甚至见过通过监控数据库binlog的变动,自动同步数据到缓存与ES的处理。
-- 查询日志状态
show VARIABLES like 'log_bin%'
开启步骤:
1.mysql的配置文件添加:
[mysqld]
log_bin=mysql-bin
server-id=1
2.重启mysql服务