数据库原理与应用基础第16章MySQL日志管理第16章MySQL日志管理MySQL支持的日志二进制日志慢查询日志通用查询日志知识点小结本章实验第16章MySQL日志管理MySQL数据库中包含多种不同类型的日志文件,这些文件记录了MySQL数据库的日常操作和错误信息,分析这些日志文件可以了解MySQL数据库的运行情况、日常操作、错误信息以及哪些地方需要进行优化。本章将介绍MySQL数据库中常见的几种日志文件,包括错误日志、通用查询日志、慢查询和二进制日志文件。第16章MySQL日志管理MySQL支持的日志二进制日志慢查询日志通用查询日志知识点小结本章实验MySQL支持的日志错误日志启动查看删除MySQL支持的日志错误日志错误日志是MySQL数据库中最常用的一种日志。错误日志主要用来记录MySQL服务的开启、关闭和错误信息。本节将为读者介绍错误日志的内容。MySQL支持的日志启动注:DIR参数指定慢查询日志的存储路径在MySQL数据库中,错误日志功能是默认开启的。而且,错误日志无法被禁止。默认情况下,错误日志存储在MySQL数据库的数据文件夹下。错误日志的存储位置可以通过log-error选项来设置。将log-error选项加入到my.Ini文件的[mysqld]组中,形式如下:log-error[=DIR/[filename]]MySQL支持的日志查看错误日志中记录着开启和关闭MySQL服务的时间,以及服务运行过程中出现哪些异常等信息。如果MySQL服务出现异常,可以到错误日志中查找原因。错误日志是以文本文件的形式存储的,可以直接使用普通文本工具就可以查看。MySQL支持的日志删除数据库管理员可以删除很长时间之前的错误日志,以保证MySQL服务器上的硬盘空间。MySQL数据库中,可以使用mysqladmin命令来开启新的错误日志。mysqladmin命令的语法如下:mysqladmin-uroot-pflush-logs执行该命令后,数据库系统会自动创建一个新的错误日志。旧的错误日志仍然保留着,只是已经更名为filename.err-old。第16章MySQL日志管理MySQL支持的日志二进制日志慢查询日志通用查询日志知识点小结本章实验二进制日志二进制日志也叫作变更日志(updatelog),主要用于记录数据库的变化情况。通过二进制日志可以查询MySQL数据库中进行了哪些改变。二进制日志启动查看删除二进制日志还原数据库二进制日志启动注:DIR参数指定慢查询日志的存储路径默认情况下,二进制日志功能是关闭的。通过my.ini的log-bin选项可以开启二进制日志。将log-bin选项加入到my.ini文件的[mysqld]组中,形式如下:log-bin[=DIR\[filename]]二进制日志查看mysqlbinlog命令将在当前文件夹下查找指定的二进制日志。因此需要在二进制日志filename.number所在的目录下运行该命令,否则将会找不到指定的二进制日志文件。使用二进制格式可以存储更多的信息,并且可以使写入二进制日志的效率更高。打开二进制日志的命令的语法形式如下:mysqlbinlogfilename.number二进制日志删除二进制日记会记录大量的信息,如果很长时间不清理,将会浪费很多的磁盘空间,以下为删除二进制日志的几种方法:1.删除所有二进制日志2.根据编号来删除二进制日志3.根据创建时间来删除二进制日志二进制日志1.删除所有二进制使用resetmaster语句可以删除所有二进制日志。该语句的形式如下:resetmaster;注:删除所有二进制日志后,MySQL将会重新创建新的二进制日志。二进制日志2.根据编号来删除二进制日志每个二进制日志文件后面有一个六位数的编号,如000001。使用purgemasterlogsto语句可以删除编号小于这个二进制日志的所有二进制日志。该语句的基本语法形式如下:purgemasterlogsto'filename.number';二进制日志3.根据创建时间来删除二进制日志使用purgemasterlogsto语句可以删除指定时间之前创建的二进制日志。该语句的基本语法形式如下:purgemasterlogsbefore'yyyy-mm-ddhh:mm;ss';二进制日志二进制日志还原数据库命令如下:mysqlbinlogfilename.number|mysql-uroot-p注:使用mysqlbinlog命令来读取filename.Number中的内容,然后使用mysql命令将这些内容还原到数据库中第16章MySQL日志管理MySQL支持的日志二进制日志慢查询日志通用查询日志知识点小结本章实验慢查询日志启动查看删除慢查询日志启动注:DIR参数指定慢查询日志的存储路径默认情况下,慢查询日志功能是关闭的。在windows下,通过修改my.ini文件的slow-query-log选项可以开启慢查询日志。在[mysqld]组,把slow-query-log的值设置为1(默认是0),重新启动MySQL服务即可开启慢查询日志。其语法格式如下:slow_query_log_file[=DIR\[filename]]慢查询日志查看执行时间超过指定时间的查询语句会被记录到慢查询日志中。如果用户希望查询哪些查询语句的执行效率低,可以从慢查询日志中获得想要的信息。慢查询日志也是以文本文件的形式存储的。可以使用普通的文本文件查看工具来查看。慢查询日志删除执行该命令后,命令行会提示输入密码。输入正确密码后,将执行删除操作。新的慢查询日志会直接覆盖旧的查询日志,不需要再手动删除了。慢查询日志的删除方法可以使用mysqladmin命令来删除,也可以使用手工方式来删除。mysqladmin命令的语法如下:slow_query_log_file[=DIR\[filename]]第16章MySQL日志管理MySQL支持的日志二进制日志慢查询日志通用查询日志知识点小结本章实验通用查询日志启动查看删除通用查询日志启动注:DIR参数指定通用查询日志的存储路径默认情况下,通用查询日志功能是关闭的。在windows下,通过修改my.ini文件的log选项可以开启通用查询日志。在[mysqld]组,把general-log的值设置为1(默认是0),重新启动MySQL服务即可开启查询日志,general_log_file表示日志的路径,形式如下:general_log_file[=DIR\[filename]]通用查询日志查看用户的所有操作都会记录到通用查询日志中。如果希望了解某个用户最近的操作,可以查看通用查询日志,通用查询日志是以文本文件的形式存储的。通用查询日志删除MySQL数据库中,可使用mysqladmin命令来开启新的通用查询日志。新的通用查询日志会直接覆盖旧的查询日志,不需要再手动删除了。mysqladmin命令的语法如下:mysqladmin–uroot–pflush-logs除了上述方法以外,可以手工删除通用查询日志。删除之后需要重新启动MySQL服务,重启之后就会生成新的通用查询日志。第16章MySQL日志管理MySQL支持的日志二进制日志慢查询日志通用查询日志知识点小结本章实验知识点小结本章介绍了日志的含义、作用和优缺点,然后介绍了二进制日志、错误日志、通用日志和慢查询日志的内容。其中二进制日志是本章的难点。二进制日志的查询方法与其他日志不同,需要读者特别注意。而且二进制日志可以还原数据库。第16章MySQL日志管理MySQL支持的日志二进制日志慢查询日志通用查询日志知识点小结本章实验本章实验实验内容:MySQL日志管理实验