MySQL相关的日志主要有以下几种: 错误日志, 查询日志, 慢查询日志, binlog日志, 中继日志, 事务日志
记录的事件信息:
(1)mysqld启动和关闭过程中输出的事件信息;
(2)mysqld运行中产生的错误信息;
(3)时间调度器event scheduler运行一个event时产生的日志信息;
(4)在主从复制架构中, 从服务器上启动从服务器线程时产生的信息。
配置参数:
log_error=/data/mysql/mysql3306/logs/error.log
log_warnings=ON|OFF 是否记录警告信息至错误日志文件中
开启general log,可以将所有的SQL语句记录下来。一般不会开启该功能,因为log的量会非常庞大。
但个别情况下可能会临时开启,用来排查故障。
配置参数:
有3个配置参数,general_log、log_output、general_log_file
(1)日志开关配置:
general_log=ON|OFF
(2)日志存储方式:
log_output=FILE|TABLE
log_output='FILE'
表示将日志存入文件, 默认值是FILE
log_output='TABLE'
表示将日志存入数据库, 日志信息就会被存入mysql.slow_log表中。
log_output='FILE,TABLE'
mysql支持同时两种日志存储方式, 以逗号隔开即可。
(3)日志文件保存位置:
general_log_file=/data/mysql/mysql3306/logs/general.log
建议:
日志记录到表中要比记录到文件中,耗费更多的系统资源。
因此对于需要启用慢查日志,建议优先记录到文件。
另外,除了用数据库来收集此日志,也可以采用抓包的方案收集此日志(后续会有分享)。
MySQL的慢查询日志,用来记录在MySQL中响应时间超过阀值long_query_time的语句,则会被记录到慢查询日志中。
配置参数:
slow_query_log=ON|OFF
是否开启慢查询日志
slow_query_log_file=/data/mysql/mysql3306/logs/slow.log
慢查询日志存储路径, 旧版(5.6以下版本)使用log_slow_queries来配置
long_query_time=0.1
慢查询阈值, 单位为秒, 可以采用小数的形式精确到微妙。
log_queries_not_using_indexes=ON|OFF
未使用索引的查询,也被记录到慢查询日志中。如果调优,建议开启此选项。
log_output=FILE|TABLE
日志记录方式, 同上。
记录修改数据或可能引起数据改变的SQL语句。用于通过"重放"日志文件中的事件,来生成数据副本,恢复数据。
配置参数:
sql_log_bin=ON|OFF
是否记录二进制日志
log_bin=/data/mysql/mysql3306/logs/mysql-bin
binlog文件存储路径
binlog_format=STATEMENT|ROW|MIXED
二进制日志记录的格式
复制架构中, 从服务器用于保存从主服务器的二进制日志文件中读取到的事件, 并保存为的日志文件
配置参数:
relay-log=/data/mysql/mysql3306/logs/relay-bin
事务型存储引擎自行管理和使用, 事务日志能将随机IO转换为顺序IO。
事务型存储引擎innodb用于保证事务特性的日志文件。
redo日志、undo日志
事务性存储引擎ACID:
用于保证原子性、一致性、隔离性和持久性。