MySQL的日志系统包含:general query log、slow query log、error log(记录MySQL
Server启动时、运行中、停止时的错误信息)、binary log(记录MySQL Server运行过程中的
数据变更的逻辑日志)、relay log(记录从库IO线程从主库获取的主库数据变更日志)、DDL
log(记录 DDL 语句执行 时 的元数 据 变更信息 。 5.7中只 支 持写入到 文件,8.0 中 支持写 入 到
innodb_ddl_log表中,注意,ddl log与online ddl的alter log不同,不要搞混了),其中,在
MySQL 5.7中,只有general query log、slow query log支持写入到表中(也支持写入到文
件中),其他日志类型在MySQL 5.7版本中只支持写入到文件中,所以,下文中对于日志系统
表主要介绍 general query log、slow query log表。
默认情况下,除Windows上的错误日志之外,其他平台的所有日志默认情况下不启用 (DDL日
志只在需要时创建,并且无用户可配置选项)。
默认情况下,所有日志均写在datadir目录下,但可以使用每种日志对应的路径参数自行更改路
径。
general query log:
general_log_file=/home/mysql/data/mysqldata1/mydata/localhost.log
error log:log_error=/home/mysql/data/mysqldata1/log/error.log
slow query log:slow_query_log_file=/home/mysql/data/mysqldata1/slowlog/slow-
query.log
binary log:log_bin_basename=/home/mysql/data/mysqldata1/binlog/mysql-bin、
log_bin_index=/home/mysql/data/mysqldata1/binlog/mysql-bin.index
relay log:relay_log_basename=/home/mysql/data/mysqldata1/relaylog/mysql-
relay-bin、relay_log_index=/home/mysql/data/mysqldata1/relaylog/mysql-relay-
bin.index
默认情况下,所有的日志都写入到磁盘文件,但general query log和slow query log可以通
过log_output=TABLE设置保存到表mysql.general_log和mysql.slow_log表中(DDL log在
8.0中可以配置,可打印到错误日志中,也可以保存在表innodb_ddl_log中)。
默 认 情 况 下 , binary log 根 据 max_binlog_size 参 数 设 置 的 大 小 自 动 滚 动 、 relay log 根 据
max_relay_log_size或者max_binlog_size自动滚动(如果max_relay_log_size没设置就按照
max_binlog_size大小滚动),其他的日志类型不会滚动,总是使用同一个文件,所以其他日志
类型增长过大之后,需要自行做切割。
评论