这期内容当中小编将会给大家带来有关MySQL数据库中的日志类型有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
在MySQL系统中,有着诸多不同类型的日志。各种日志都有着自己的用途,通过分析日志,我们可以优化数据库性能,排除故障,甚至能够还原数据。这些不同类型的日志有助于我们更清晰的了解数据库,在日常学习及运维过程中也会和这些日志打交道。本节内容将带你了解MySQL数据库中几种常用日志的作用及管理方法。
错误日志记录着mysqld启动和停止,以及服务器在运行过程中发生的错误及警告相关信息。当数据库意外宕机或发生其他错误时,我们应该去排查错误日志。
log_error参数控制错误日志是否写入文件及文件名称,默认情况下,错误日志被写入终端标准输出stderr。当然,推荐指定log_error参数,自定义错误日志文件位置及名称。
#指定错误日志位置及名称 vim/etc/my.cnf (mysqld) log_error=/数据/mysql/日志/error.log 相关配置变量说明: log_error={1 | 0 |/路径//ERROR_LOG_FILENAME} 定义错误日志文件。作用范围为全局或会话级别,属非动态变量。
慢查询日志是用来记录执行时间超过long_query_time这个变量定义的时长的查询语句。通过慢查询日志,可以查找出哪些查询语句的执行效率很低,以便进行优化。
与慢查询相关的几个参数如下:
- <李> slow_query_log:是否启用慢查询日志,默认为0,可设置为0,1。李> <李> slow_query_log_file:指定慢查询日志位置及名称,默认值为host_name-slow。日志,可指定绝对路径。李> <李> long_query_time:慢查询执行时间阈值,超过此时间会记录,默认为10,单位为s。李> <李> log_output:慢查询日志输出目标,默认为文件,即输出到文件。
李,>
默认情况下,慢查询日志是不开启的,一般情况下建议开启,方便进行慢SQL优化。在配置文件中可以增加以下参数:
#慢查询日志相关配置,可根据实际情况修改 vim/etc/my.cnf (mysqld) slow_query_log=1 slow_query_log_file=/数据/mysql/日志/slow.log long_query_time=3 log_output=文件
一般查询日志又称通用查询日志,是MySQL中记录最详细的日志,该日志会记录mysqld所有相关操作,当客户端连接或断开连接时,服务器将信息写入此日志,并记录从客户收的到的每个SQL语句。当你怀疑客户机中的错误并想要确切知道客户发送给mysqld的内容时,通用查询日志非常有用。
默认情况下,通用日志是关闭的,开启通用查询日志会增加很多磁盘I/O,所以如非出于调试排错目的,不建议开启通用查询日志。相关参数配置介绍如下:
#通用日志相关配置 vim/etc/my.cnf (mysqld) general_log=0//默认值是0,即不开启,可设置为1 general_log_file=/数据/mysql/日志/一般。日志//指定日志位置及名称
关于二进制日志,前面有篇文章做过介绍。它记录了数据库所有执行的DDL和DML语句(除了数据查询语句选择、显示等),以事件形式记录并保存在二进制文件中。常用于数据恢复和主从复制。
与binlog相关的几个参数如下:
- <李> log_bin:指定binlog是否开启及文件名称。李> <李> server_id:指定服务器唯一ID、开启binlog必须设置此参数。李> <李> binlog_format:指定binlog模式,建议设置为行。李> <李> max_binlog_size:控制单个二进制日志大小,当前日志文件大小超过此变量时,执行切换动作。李> <李> expire_logs_days:控制二进制日志文件保留天数,默认值为0,表示不自动删除,可设置为0 ~ 99。
李,>
binlog默认情况下是不开启的,不过一般情况下,建议开启,特别是要做主从同步时。
# binlog相关配置 vim/etc/my.cnf (mysqld) 服务器id=1003306 log-bin=/数据/mysql/日志/binlog binlog_format=行 expire_logs_days=15
中继日志用于主从复制架构中的从服务器上,从服务器的奴隶进程从主服务器处获取二进制日志的内容并写入中继日志,然后由IO进程读取并执行中继日志中的语句。
中继日志相关参数一般在从库设置,几个相关参数介绍如下:
- <李> relay_log:定义中继日志的位置和名称。李> <李> relay_log_purge:是否自动清空不再需要中继日志,默认值为1(启用)。李> <李> relay_log_recovery:当奴隶从库宕机后,假如中继日志损坏了,导致一部分中继日志没有处理,则自动放弃所有未执行的中继日志,并且重新从总体上获取日志,这样就保证了中继日志的完整性。默认情况下该功能是关闭的,将relay_log_recovery的值设置为1可开启此功能。