和大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分。MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等。这些日志可以帮助我们定位mysqld内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等等。
<br>
MySQL日志文件系统的组成
1.错误日志:记录启动、运行或停止mysqld时出现的问题。
2.通用查询日志:记录建立的客户端连接和执行的语句。
3.更新日志:记录更改数据的语句。该日志在MySQL 5.1中已不再使用。
4.二进制日志:记录所有更改数据的语句。还用于主从复制。
5.慢查询日志:记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询。
6.Innodb日志:innodb redo log
7.中继日志:从库从主库获取到的要更新的数据的日志。
默认情况下,所有日志创建于mysqld数据目录中。 可以通过刷新日志,来强制mysqld来关闭和重新打开日志文件(或者在某些情况下切换到一个新的日志)。当你执行一个FLUSH LOGS语句或执行mysqladmin flush-logs或mysqladmin refresh时,则日志被老化。对于存在MySQL复制的情形下,从复制服务器将维护更多日志文件,被称为接替日志。
<br>
通用查询日志
在学习通用日志查询时,需要知道几个数据库中的常用命令:
1.show variables like '%version%';
这个命令,可以显示当前数据库中与版本号相关的信息。示例:
mysql> show variables like '%version%';
+-------------------------+----------------+
| Variable_name | Value |
+-------------------------+----------------+
| innodb_version | 5.7.14 |
| protocol_version | 10 |
| slave_type_conversions | |
| version | 10.2.6-MariaDB |
| version_comment | MariaDB Server |
| version_compile_machine | x86_64 |
| version_compile_os | Linux |
| version_malloc_library | system |
| version_ssl_library | YaSSL 2.4.2 |
| wsrep_patch_version | wsrep_25.19 |
+-------------------------+----------------+
10 rows in set (0.01 sec)
mysql>
以下这个命令是用于查看当前的通用日志查询是否开启,如果general_log的值为ON则为开启,为OFF则为关闭(默认情况下是关闭的)。
2.show variables like '%general%';
示例:
mysql> show variables like '%general%';
+------------------+------------+
| Variable_name | Value |
+------------------+------------+
| general_log | OFF |
| general_log_file | server.log |
+------------------+------------+
2 rows in set (0.00 sec)
mysql>
以下这个命令是用于查看当前通用查询日志输出的格式,log_output的值可以是FILE(存储在数数据库的数据文件中的hostname.log),也可以是TABLE(存储在数据库中的mysql.general_log)。
3.show variables like '%log_output%';
mysql>
<br>
如何开启MySQL通用查询日志,以及使用何种方式去记录这些通用查询日志?
开启通用日志查询: set global general_log=on;
关闭通用日志查询: set global general_log=off;
设置将通用日志记录到数据库表格中: set globallog_output='TABLE';
设置将通用日志记录到本地文件中: set globallog_output='FILE';
设置将通用日志记录到数据库表和本地文件中:set global log_output='FILE,TABLE';
大型站长资讯类网站! https://www.0818zz.com