MySQL中几种常见的日志
前言:
在 MySQL 系统中,有着诸多不同类型的日志。各种日志都有着自己的用途,通过分析日志,我们可以优化数据库性能,排除故障,甚至能够还原数据。这些不同类型的日志有助于我们更清晰的了解数据库,在日常学习及运维过程中也会和这些日志打交道。本节内容将带你了解 MySQL 数据库中几种常用日志的作用及管理方法。
1.错误日志(errorlog)
错误日志记录着 mysqld 启动和停止,以及服务器在运行过程中发生的错误及警告相关信息。当数据库意外宕机或发生其他错误时,我们应该去排查错误日志。
log_error 参数控制错误日志是否写入文件及文件名称,默认情况下,错误日志被写入终端标准输出stderr。当然,推荐指定 log_error 参数,自定义错误日志文件位置及名称。
# 指定错误日志位置及名称
vim /etc/my.cnf
[mysqld]
log_error = /data/mysql/logs/error.log
相关配置变量说明:
log_error={1 | 0 | /PATH/TO/ERROR_LOG_FILENAME}
定义错误日志文件。作用范围为全局或会话级别,属非动态变量。
2.慢查询日志(slow query log)
慢查询日志是用来记录执行时间超过 long_query_time 这个变量定义的时长的查询语句。通过慢查询日志,可以查找出哪些查询语句的执行效率很低,以便进行优化。
与慢查询相关的几个参数如下:
slow_query_log:是否启用慢查询日志,默认为0,可设置为0,1。
slow_query_log_file:指定慢查询日志位置及名称,默认值为host_name-slow.log,可指定绝对路径。
long_query_time:慢查询执行时间阈值,超过此时间会记录,默认为10,单位为s。
log_output:慢查询日志输出目标,默认为file,即输出到文件。
默认情况下,慢查询日志是不开启的,一般情况下建议开启,方便进行慢SQL优化。在配置文件中可以增加以下参数:
# 慢查询日志相关配置,可根据实际情况修改
vim /etc/my.cnf
[mysqld]
slow_query_log = 1
slow_query_log_file = /data/mysql/logs/slow.log
long_query_time = 3
log_output = FILE
3.一般查询日志(general log)
一般查询日志又称通用查询日志,是 MySQL 中记录最详细的日志,该日志会记录 mysqld 所有相关操作,当 clients 连接或断开连接时,服务器将信息写入此日志,并记录从 clients 收到的每个 SQL 语句。当你怀疑 client 中的错误并想要确切知道 client 发送给mysqld的内容时,通用查询日志非常有用。
默认情况下,general log 是关闭的,开启通用查询日志会增加很多磁盘 I/O, 所以如非出于调试排错目的,不建议开启通用查询日志。相关参数配置介绍如下:
# general log相关配置
vim /etc/my.cnf
[mysqld]
general_log = 0 //默认值是0,即不开启,可设置为1
general_log_file = /data/mysql/logs/general.log //指定日志位置及名称
4.二进制日志(binlog)
关于二进制日志,前面有篇文章做过介绍。它记录了数据库所有执行的DDL和DML语句(除了数据查询语句select、show等),以事件形式记录并保存在二进制文件中。常用于数据恢复和主从复制。
与 binlog 相关的几个参数如下:
log_bin:指定binlog是否开启及文件名称。
server_id:指定服务器唯一ID,开启binlog 必须设置此参数。
binlog_format:指定binlog模式,建议设置为ROW。
max_binlog_size:控制单个二进制日志大小,当前日志文件大小超过此变量时,执行切换动作。
expire_logs_days:控制二进制日志文件保留天数,默认值为0,表示不自动删除,可设置为0~99。
binlog默认情况下是不开启的,不过一般情况下,建议开启,特别是要做主从同步时。
# binlog 相关配置
vim /etc/my.cnf
[mysqld]
server-id = 1003306
log-bin = /data/mysql/logs/binlog
binlog_format = row
expire_logs_days = 15
5.中继日志(relay log)
中继日志用于主从复制架构中的从服务器上,从服务器的 slave 进程从主服务器处获取二进制日志的内容并写入中继日志,然后由 IO 进程读取并执行中继日志中的语句。
relay log 相关参数一般在从库设置,几个相关参数介绍如下:
relay_log:定义 relay log 的位置和名称。
relay_log_purge:是否自动清空不再需要中继日志,默认值为1(启用)。
relay_log_recovery:当 slave 从库宕机后,假如 relay log 损坏了,导致一部分中继日志没有处理,则自动放弃所有未执行的 relay log ,并且重新从 master 上获取日志,这样就保证了 relay log 的完整性。默认情况下该功能是关闭的,将 relay_log_recovery 的值设置为1可开启此功能。
relay log 默认位置在数据文件的目录,文件名为 host_name-relay-bin,可以自定义文件位置及名称。
# relay log 相关配置,从库端设置
vim /etc/my.cnf
[mysqld]
relay_log = /data/mysql/logs/relay-bin
relay_log_purge = 1
relay_log_recovery = 1
总结:
本篇文章主要讲述了 MySQL 中的几类日志的用途及设置方法,需要注意的是,上述几类日志,若不指定绝对路径,则默认保存在数据目录下,我们也可以新建一个日志目录专用于保存这些日志。还有 redo log 和 undo log 没有讲解,留在下篇文章吧。
MySQL中几种常见的日志
标签:详细一个错误效率停止不同类相关信息日志记录convert
mysql数据库有哪些类型有哪些
1. 关系型数据库(RDBMS)关系型数据库是MySQL中最常见和应用最广泛的数据库类型。它采用关系模型来存储和管理数据,以表格的形式组织和存储数据,具有强大的数据操作功能,包括数据查询、插入、更新和删除等。2. 列式存储数据库 列式存储数据库是MySQL中一种特殊的数据库类型,主要用于分析性场景。与传...
mysql常见的数据类型有哪些
MySQL数据类型有 整数类型:BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT 浮点数类型:FLOAT、DOUBLE、DECIMAL 字符串类型:CHAR、VARCHAR、TINY TEXT、TEXT、MEDIUM TEXT、LONGTEXT、TINY BLOB、BLOB、MEDIUM BLOB、LONG BLOB 日期类型:Date、DateTime、TimeStamp、Time、Year 其他数据类型...
mysql数据库有哪些类型
1. 关系型数据库(RDBMS)MySQL最基础且最常见的类型是关系型数据库(RDBMS)。关系型数据库以表格形式存储数据,数据在表中以行的形式存在,每一行代表一条记录,每一列代表一个数据字段。RDBMS能够处理大量结构化数据,支持ACID事务特性,保证数据的完整性和一致性。MySQL的InnoDB存储引擎就是这种类型的...
Mysql数据库3种存储引擎有什么区别?
MySQL常见的三种存储引擎为InnoDB、MyISAM和MEMORY。其区别体现在事务安全、存储限制、空间使用、内存使用、插入数据的速度和对外键的支持。具体如下:1、事务安全:InnoDB支持事务安全,MyISAM和MEMORY两个不支持。2、存储限制:InnoDB有64TB的存储限制,MyISAM和MEMORY要是具体情况而定。3、空间使用:InnoDB...
MySQL中几种常见的日志
2.慢查询日志(slow query log)慢查询日志是用来记录执行时间超过 long_query_time 这个变量定义的时长的查询语句。通过慢查询日志,可以查找出哪些查询语句的执行效率很低,以便进行优化。与慢查询相关的几个参数如下:slow_query_log:是否启用慢查询日志,默认为0,可设置为0,1。slow_query_log_...
mysql中常见的数据类型
MySQL中定义数据字段的类型对你数据库的优化是非常重要的 MySQL支持多种数据类型,大致可以分为三类:数值 日期\/时间和字符串 二、数值类型 1.整数类型 2.浮点数 如果希望保证值比较准确,推荐使用定点数数据类型。MySql中的浮点类型有float,double和real。他们定义方式为:FLOAT(M,D) 、 REAL(M,D) ...
...数字日期时间布尔等常见类型及各自的特点mysql中列类型
MySQL中常见的数字类型有TINYINT、INT、BIGINT、FLOAT、DOUBLE等。其中,TINYINT占用1个字节,INT占用4个字节,BIGINT占用8个字节。FLOAT和DOUBLE是浮点数类型,用于存储小数值。相对于DECIMAL类型,它们的精度较低,但在存储空间上占用更小。下表列出了各数字类型的取值范围和字节大小。类型 取值范围 ...
MySQL常见的三种存储引擎是什么
一般在以下几种情况下使用Memory存储引擎:目标数据较小,而且被非常频繁地访问。在内存中存放数据,所以会造成内存的使用,可以通过参数max_heap_table_size控制Memory表的大小,设置此参数,就可以限制Memory表的最大大小。如果数据是临时的,而且要求必须立即可用,那么就可以存放在内存表中。MySQL常见的...
MySQL中应该使用什么数据类型来表示价格mysql中价格用用什么
在MySQL中常常用到以下几种数据类型来存储价格:1. 定点数NUMERIC或DECIMAL类型 这是MySQL中最常见准确存储价格的数据类型。NUMERIC或DECIMAL类型被用于存储小数位数较多,精度要求高的数据,它们的存储空间比其他数据类型更大。这种数据类型可以通过指定小数点后的位数来精确地表示价格和货币值。例如:DECIMAL(...
mysql内部有4种常见日志,哪种日志是不能直接
1.错误日志 记录启动、运行或停止mysqld时出现的问题 log-error=d:\/mysql_log_err.txt 2.查询日志 记录建立的客户端连接和执行的所有语句(包括错误的)。log=d:\/mysql_log.txt 3、二进制日志 记录所有更改数据的语句、还用于主从复制 log-bin=d:\/mysql_log_bin 4.慢日志 记录所...
仁钞冠心: 错误日志 普通查询日志 二进制日志 慢查询日志Mysql错误日志主要记录Mysql实例每次启动、停止的详细信息,以及Mysql实例运行过程中产生的警告或者错误信息,与其它日志不同,Mysql错误日志必须开启,无法关闭. Mysql general log记录...
镇安县18252327873: 如何查看mysql运行,访问记录等日志 - ?
仁钞冠心: mysql有以下几种日志: 错误日志: -log-err 查询日志: -log 慢查询日志: -log-slow-queries 更新日志: -log-update 二进制日志: -log-bin 是否启用了日志 1 mysql>show variables like'log_%'; 怎样知道当前的日志 1 mysql> show master status;...
镇安县18252327873: 如何开启mysql的日志或如何查看 mysql的日志文件 - ?
仁钞冠心: mysql有以下几种日志:错误日志: -log-err 查询日志: -log 慢查询日志: -log-slow-queries 更新日志: -log-update 二进制日志: -log-bin 在mysql的安装目录下,打开my.ini,在后面加上上面的参数,保存后重启mysql服务就行了.例如:#Enter ...
镇安县18252327873: 如何查看mysql数据库操作记录日志 - ?
仁钞冠心: 是否启用了日志 1 mysql>show variables like 'log_bin'; 怎样知道当前的日志 1 mysql> show master status; 看二进制日志文件用mysqlbinlog shell>mysqlbinlog mail-bin.000001(要写绝对问题路径d://) 或者 shell>mysqlbinlog mail-bin.000001 ...
镇安县18252327873: mysql开启binlog日志 - ?
仁钞冠心: mysql开启binlog日志 mysql有以下几种日志:错误日志: -log-err查询日志: -log慢查询日志: -log-slow-queries更新日志: -log-update二进制日志: -log-bin在mysql的安装目录下,打开my.ini,在后面加上上面的参数,保存后重启mysql服务就行了
镇安县18252327873: windows mysql日志查看 - ?
仁钞冠心: mysql有好几种日志,通常日志,查询缓慢日志,错误日志,默认只有错误日志是开启的,通常日志如果开启会消耗大量系统资源,而且查看也是非常不容易.如果想看哪里出错的话,查询错误日志就可以.通常会在data文件夹下面,服务器名称.err就是日志
镇安县18252327873: 如何查询MySQL日志 - ?
仁钞冠心: 您好,很高兴为您解答.开启MySQL日志: 找到my.ini文件 打开 log-bin="D:\log\mysql_bin" 就会生成形如: mysql_bin.000001 mysql_bin.index 这样的文件.查看MySQL日志: D:\mysql\bin>mysqlbinlog mysql_bin.000001导出MySQL日...
镇安县18252327873: linux mysql日志文件有哪些 - ?
仁钞冠心: 首先登陆 mysql: >mysql -u root -p 然后查看是否启用了日志 mysql>show variables like 'log_%'; 查看当前的日志 mysql> show master status; 你需要知道的mysql的日志类型: 错误日志: -log-err查询日志: -log慢查询日志: -log-slow-queries...
镇安县18252327873: 怎么样通过开启MySQL查询日志log - ?
仁钞冠心: 如何查看当前的二进制日志,可以使用mysqlbinlog的的工具,命令如下:shell>mysqlbinlog mail-bin.000001(要写绝对问题路径 d://)或者shell>mysqlbinlog mail-bin.000001 | tail4)mysql有以下几种日志:错误日志: -log-err查询日志: -log慢查...
镇安县18252327873: 怎么查看mysql日志 - ?
仁钞冠心: 您好,很高兴为您解答.是否启用了日志 mysql>show variables like 'log_bin';怎样知道当前的日志 mysql> show master status;看二进制日志文件用mysqlbinlog shell>mysqlbinlog mail-bin.000001(要写绝对问题路径d://) 或者shell>...