2022年9月4日星期日

mysql的日志文件是哪个 mysql的日志文件位置

mysql有四种日志文件:1、二进制日志文件,该日志文件会以二进制的形式记录数据库的各种操作,但不记录查询语句;2、错误日志文件,主要记录MySQL服务器启动和停止过程中的信息、服务器在运行过程中发生的故障和异常情况等;3、通用查询日志文件,记录服务器的启动和关闭信息、客户端的连接信息、更新、查询数据记录的SQL语句等;4、慢查询日志文件,主要记录执行事件超过指定时间的操作。

本教程操作环境:Ubuntu系统、mysql5.7版本。

日志是数据库的重要组成部分,主要用来记录数据库的运行情况、日常操作和错误信息。

在MySQL 中 ,日志文件可以分为4 种:二进制日志文件、错误日志文件、通用查询日志文件和慢查询日志文件。

  • 二进制日志文件:该日志文件会以二进制的形式记录数据库的各种操作,但不记录查询语句。主要用于记录数据库的变化情况,即 SQL 语句的 DDL 和 DML 语句,不包含数据记录查询操作。

  • 错误日志文件:主要记录 MySQL 服务器启动和停止过程中的信息、服务器在运行过程中发生的故障和异常情况等。

  • 通用查询日志文件:该日志记录 MySQL 服务器的启动和关闭信息、客户端的连接信息、更新、查询数据记录的 SQL 语句等。在Ubuntu系统中,MySQL数据库通用查询日志文件默认路径为:/var/log/mysql/ 目录下面的mysql.log文件。

  • 慢查询日志文件:记录执行事件超过指定时间的操作,通过工具分析慢查询日志可以定位 MySQL 服务器性能瓶颈所在。

在 MySQL 所支持的日志文件里,除了二进制日志文件外,其它日志文件都是文本文件。默认情况下,MySQL 只会启动错误日志文件,而其它日志则需要手动启动。

使用日志有优点也有缺点。启动日志后,虽然可以对 MySQL 服务器性能进行维护,但是会降低 MySQL 的执行速度。例如,一个查询操作比较频繁的 MySQL 中,记录通用查询日志和慢查询日志要花费很多的时间。

日志文件还会占用大量的硬盘空间。对于用户量非常大、操作非常频繁的数据库,日志文件需要的存储空间甚至比数据库文件需要的存储空间还要大。因此,是否启动日志,启动什么类型的日志要根据具体的应用来决定。

扩展知识:MySQL使用二进制日志还原数据库

二进制日志中记录了用户对数据库更改的所有操作,如 INSERT 语句、UPDATE 语句、CREATE 语句等。如果数据库因为操作不当或其它原因丢失了数据,可以通过二进制日志来查看在一定时间段内用户的操作,结合数据库备份来还原数据库。

下面将详细介绍使用二进制日志还原数据库的方法。更多用法请浏览:MySQL二进制日志(binlog)总结

数据库遭到意外损坏时,应该先使用最近的备份文件来还原数据库。另外备份之后,数据库可能进行了一些更新,这时可以使用二进制日志来还原。因为二进制日志中存储了更新数据库的语句,如 UPDATE 语句、INSERT 语句等。

二进制日志还原数据库的命令如下:

1

mysqlbinlog filename.number | mysql -u root -p

以上命令可以理解成,先使用 mysqlbinlog 命令来读取 filename.number 中的内容,再使用 mysql 命令将这些内容还原到数据库中。

技巧:二进制日志虽然可以用来还原 MySQL 数据库,但是其占用的磁盘空间也是非常大的。因此,在备份 MySQL 数据库之后,应该删除备份之前的二进制日志。如果备份之后发生异常,造成数据库的数据损失,可以通过备份之后的二进制日志进行还原。

使用 mysqlbinlog 命令进行还原操作时,必须是编号(number)小的先还原。例如,mylog.000001 必须在 mylog.000002 之前还原。

例 1

下面使用二进制日志来还原数据库,代码如下:

1

2

3

4

mysqlbinlog mylog.000001 | mysql -u root -p

mysqlbinlog mylog.000002 | mysql -u root -p

mysqlbinlog mylog.000003 | mysql -u root -p

mysqlbinlog mylog.000004 | mysql -u root -p


留下您的评论