MySQL数据库中根据日志文件的不同,可分为以下几种,下面将分别介绍。
一 错误日志
1 描述
记录MySQL的启动、停止信息以及在MySQL运行过程中的错误信息,类似于Oracle数据库的alert log,默认是开启。错误日志文件一般存放在数据目录下,以error.log作为文件名的结尾。
错误日志不光记录着是错误的信息,在MySQL 5.7初始化数据库中,加上--initialize参数,会生成一个临时的数据库初始密码,记录在log-error中。
2 参数
[mysqld]中的参数:
1)log_err(默认开启)
log_error=[path/[file_name]],如果不指定文件名,则默认hostname.err,修改后重启生效;
mysql> show variables like 'log_error';
+---------------+-------------------------+
| Variable_name | Value |
+---------------+-------------------------+
| log_error | ./strong.oracle.com.err |
+---------------+-------------------------+
1 row in set (0.02 sec)
2)log_warnings
该参数在5.7.2之后被不建议使用,取而代之的是log_error_verbosity;
3)log_error_verbosity
该参数有以下几种值选项,分别为:
- 1:仅仅记录错误;
- 2:记录错误和警告;
- 3:默认值,记录错误、警告和普通日志;
3 试验
1)查看错误日志
mysql> show variables like 'log_error';
+---------------+-------------------------+
| Variable_name | Value |
+---------------+-------------------------+
| log_error | ./strong.oracle.com.err |
+---------------+-------------------------+
1 row in set (0.01 sec)
2)错误日志维护
可以直接删除错误日志文件,删除后,错误日志不会自动重建,需要flush logs或者重启数据库。
[root@strong mydb]# ll strong.oracle.com.err
-rw-r-----. 1 mysql mysql 79058 May 11 10:14 strong.oracle.com.err
[root@strong mydb]# rm strong.oracle.com.err
rm: remove regular file `strong.oracle.com.err'? y
[root@strong mydb]# ll strong.oracle.com.err
ls: cannot access strong.oracle.com.err: No such file or directory
[root@strong mydb]# mysqladmin -uroot -pmysql -S /u01/data/mydb/3306.sock flush-logs;
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
[root@strong mydb]# ll strong.oracle.com.err
-rw-r-----. 1 mysql mysql 0 May 11 10:39 strong.oracle.com.err
注:也可以使用mysql> flush logs;重建错误日志。
二 常规日志
1 描述
由log moudle写入,记录MySQL的所有用户操作,包括启动和关闭服务、执行查询和更新语句等。包括错误的记录,mysqld的所有动作,默认关闭。
平时不开启常规日志,出现问题时候再开启,防止大量日志充满空间。
2 参数
[mysqld]中的参数:
1)general_log
默认关闭,{0-关闭,1-开启},可以在线打开和关闭;
2)general_log_file
指定日志文件名称和路径;
3)log_output
该参数有如下选项,分别为:
- TABLE:便于统计写入一个CSV引擎的表mysql.general_log中;
- FIFLE:默认值,存储在文件;
- TABLE,FILE:同时存放在表和文件中;