参考博客:
```
http://blog.csdn.net/timchen525/article/details/75268151
```
# mysql日志类型
mysql中的日志包括:
- 错误日志
- 二进制日志
- 通用查询日志
- 慢查询日志
这里主要介绍下比较常用的两个功能: 通用查询日志和慢查询日志
1) 通用查询日志: 记录简历的客户端连接和执行的语句
2) 慢查询日志: 记录所有执行时间超过long_query_time秒的所有查询或者不使用索引的查询
## 通用查询日志
这里需要知道两个数据库中常用的命令:
1.show variables like '%version%';
执行效果如下, 可以查看数据库的相关版本信息
```
mysql> show variables like '%version%';
+-------------------------+------------------------------+
| Variable_name | Value |
+-------------------------+------------------------------+
| innodb_version | 5.7.9 |
| protocol_version | 10 |
| slave_type_conversions | |
| version | 5.7.9-log |
| version_comment | MySQL Community Server (GPL) |
| version_compile_machine | x86_64 |
| version_compile_os | linux-glibc2.5 |
+-------------------------+------------------------------+
7 rows in set (0.04 sec)
```
2.show variables like '%general%';
执行效果如下,可以查看当前的通用日志查询是否开启,默认情况下是关闭的.
```
mysql> show variables like '%general%';
+------------------+--------------------------------+
| Variable_name | Value |
+------------------+--------------------------------+
| general_log | OFF |
| general_log_file | /var/log/mysql/general-log.log |
+------------------+--------------------------------+
2 rows in set (0.01 sec)
```
3.查看慢查询日志
```
mysql> show variables like '%log_output%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output | FILE |
+---------------+-------+
1 row in set (0.01 sec)
```
## 开启和关闭日志命令
### 开启普通查询日志
```
问题:如何开启MySQL通用查询日志,以及如何设置要输出的通用日志输出格式呢?
开启通用日志查询: set global general_log=on;
关闭通用日志查询: set globalgeneral_log=off;
设置通用日志输出为表方式: set globallog_output=’TABLE’;
设置通用日志输出为文件方式: set globallog_output=’FILE’;
设置通用日志输出为表和文件方式:set global log_output=’FILE,TABLE’;
(注意:上述命令只对当前生效,当MySQL重启失效,如果要永久生效,需要配置my.cnf)
```
执行效果如下:
```
mysql> set global general_log=on;
ERROR 29 (HY000): File '/var/log/mysql/general-log.log' not found (Errcode: 2 - No such file or directory)
```
提示没有日志的文件夹路径,所以需要提前创建好目录
```
mysql> set global general_log=on;
Query OK, 0 rows affected (0.04 sec)
```
my.cnf文件的配置如下:
```
general_log=1 #为1表示开启通用日志查询,值为0表示关闭通用日志查询
log_output=FILE,TABLE#设置通用日志的输出格式为文件和表
```