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 命令将这些内容还原到数据库中。
技巧:二进制日志虽然可以用来还原 MySQL 数据库,但是其占用的磁盘空间也是非常大的。因此,在备份 MySQL 数据库之后,应该删除备份之前的二进制日志。如果备份之后发生异常,造成数据库的数据损失,可以通过备份之后的二进制日志进行还原。
使用 mysqlbinlog 命令进行还原操作时,必须是编号(number)小的先还原。例如,mylog.000001 必须在 mylog.000002 之前还原。
例 1
下面使用二进制日志来还原数据库,代码如下:
1 2 3 4 |
|