点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人。
文章不定期同步公众号,还有各种一线大厂面试原题、我的学习系列笔记。
- 错误日志(errorlog)
用来记录mysqlId的错误信息,如数据库宕机、其他数据库错误,这些都会被写入errorlog,errorlog有下面几个配置参数:(本文介绍的5种日志文件在linux下可以直接【vim /etc/my.cnf】进行配置,绝对路径的日志文件名均为.log文件)
[mysqld]
log_error:可取{0|1|具体文件路径},设置errorlog是否被写入文件,1是0否,还可以直接写上“错误日志文件绝对路径”直接输出
- 慢查询日志(slow_query_log)
用来记录查询时间超过某个时间阀值的所有sql,方便找出执行效率低的语句;其有下面几个配置参数:
[mysqld]
long_query_time:时间阀值,默认10s
slow_query_log:可取{0|1},是否启动慢查询,默认0
show_query_log_file:指定慢查询日志文件绝对路径(具体到.log文件)
log_output:慢查询日志的输出形式,默认为“file”,代表输出到文件
- 一般查询日志(general_log)
是mysql中最详细的日志,它会记录所有client客户端发给mysqlId的sql语句,所以开销会比较大,一般mysql是将其关闭的,其有下面几个参数:
general_log:是否开启general_log日志,可取{0|1},默认为0代表关闭
general_log_file:指定一般查询日志文件绝对路径(具体到.log文件)
- 二进制文件(binlog)
用于记录mysql的所有DDL/DML语句(修改数据),但不会记录那些不做数据修改的sql【如select】,并以二进制的形式保存在二进制文件中,常用于恢复数据、主从复制(从服务器的数据版本可以比主服务器高),binlog日志内容有3种格式:- Row格式:会保存每行数据被修改的细节,不会保存所有的sql语句
- Statement格式:会保存所有的sql语句,而不用去保存每行数据被修改的细节,所以相对Row格式则极大地减少了binlog的的日志量
- Mixed格式:Row格式和Statement格式的混合,比如create/alter等修改表结构语句会以Statement格式保存sql,但update/delete等修改语句还是会以Row格式保存每行数据被修改的细节
其有下面几个参数:
log_bin:是否开启binlog日志,可取{0|1}
binlog_format:binlog日志的格式,一般取Row
max_binlog_size:binlog日志文件的最大文件大小,当大于这个值时,会保留原日志文件并生成新的日志文件
expire_logs_days:binlog日志文件的保留时间,可在[0-99]之间设置,默认0表示不过期永不删除
- 中继日志(relay_log)
中继日志主要是给从服务器使用的,主从复制的时候,从服务器可从主服务器出获取binlog二进制日志文件内容,并把这些内容写入到relay_log中继日志文件,于是从服务器便可以读取中继日志文件进行主从复制,其有下面几个参数:
relay_log:指定中继日志文件绝对路径(具体到.log文件)
relay_log_purge :可取{0|1},是否清除不再需要的中继日志,默认1
relay_log_recovery :从服务器宕机后,如果中继日志relay_log损坏了,则从服务器放弃掉该中继日志,同时从服务器重新去主服务器拉取binlog二进制日志文件,重新写入形成relay_log中继日志文件
OK,如果文章哪里有错误或不足,欢迎各位留言。
创作不易,各位的「三连」是二少创作的最大动力!我们下期见!