重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1584|回复: 0
打印 上一主题 下一主题

[日志类] MySQL错误日志(Error Log)详解

[复制链接]
跳转到指定楼层
楼主
发表于 2023-3-20 14:18:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
错误日志(Error Log)是 MySQL 中最常用的一种日志,主要记录 MySQL 服务器启动和停止过程中的信息、服务器在运行过程中发生的故障和异常情况等。
启动和设置错误日志
在 MySQL 数据库中,默认开启错误日志功能。一般情况下,错误日志存储在 MySQL 数据库的数据文件夹下,通常名称为 hostname.err。其中,hostname 表示 MySQL 服务器的主机名。
在 MySQL 配置文件中,错误日志所记录的信息可以通过 log-error 和 log-warnings 来定义,其中,log-err 定义是否启用错误日志功能和错误日志的存储位置,log-warnings 定义是否将警告信息也记录到错误日志中。

将 log_error 选项加入到 MySQL 配置文件的 [mysqld] 组中,形式如下:
[mysqld]
log-error=dir/{filename}
其中,dir 参数指定错误日志的存储路径;filename 参数指定错误日志的文件名;省略参数时文件名默认为主机名,存放在 Data 目录中。

重启 MySQL 服务后,参数开始生效,可以在指定路径下看到 filename.err 的文件,如果没有指定 filename,那么错误日志将直接默认为 hostname.err。
注意:错误日志中记录的并非全是错误信息,例如 MySQL 如何启动 InnoDB 的表空间文件、如何初始化自己的存储引擎等,这些也记录在错误日志文件中。

查看错误日志
错误日志中记录着开启和关闭 MySQL 服务的时间,以及服务运行过程中出现哪些异常等信息。如果 MySQL 服务出现异常,可以到错误日志中查找原因。
在 MySQL 中,通过 SHOW 命令可以查看错误日志文件所在的目录及文件名信息。
mysql> SHOW VARIABLES LIKE 'log_error';
+---------------+--------------+
| Variable_name | Value        |
+---------------+--------------+
| log_error     | ./sztech.err |
+---------------+--------------+
1 row in set (0.18 sec)
错误日志以文本文件的形式存储,直接使用普通文本工具就可以查看。
这里通过记事本打开,从上面可以知道错误日志的文件名。该文件在默认的数据路径“/usr/local/mysql/data”下
[root@sztech etc]# cd /usr/local/mysql/data
[root@sztech data]# ll
total 168008
-rw-r-----. 1 mysql mysql       56 Oct 20 14:39 auto.cnf
-rw-r-----. 1 mysql mysql      470 Mar 20 11:23 binlog.000001
-rw-r-----. 1 mysql mysql      155 Mar 20 11:23 binlog.000002
-rw-r-----. 1 mysql mysql       32 Mar 20 11:23 binlog.index
-rw-------. 1 mysql mysql     1680 Oct 20 14:39 ca-key.pem
-rw-r--r--. 1 mysql mysql     1112 Oct 20 14:39 ca.pem
-rw-r--r--. 1 mysql mysql     1112 Oct 20 14:39 client-cert.pem
-rw-------. 1 mysql mysql     1676 Oct 20 14:39 client-key.pem
-rw-r-----. 1 mysql mysql     5927 Oct 20 14:39 ib_buffer_pool
-rw-r-----. 1 mysql mysql 12582912 Mar 20 11:23 ibdata1
-rw-r-----. 1 mysql mysql 50331648 Mar 20 11:23 ib_logfile0
-rw-r-----. 1 mysql mysql 50331648 Oct 20 14:39 ib_logfile1
-rw-r-----. 1 mysql mysql 12582912 Mar 20 11:23 ibtmp1
drwxr-x---. 2 mysql mysql      143 Oct 20 14:39 mysql
-rw-r-----. 1 mysql mysql 25165824 Mar 20 11:23 mysql.ibd
drwxr-x---. 2 mysql mysql     4096 Oct 20 14:39 performance_schema
-rw-------. 1 mysql mysql     1680 Oct 20 14:39 private_key.pem
-rw-r--r--. 1 mysql mysql      452 Oct 20 14:39 public_key.pem
-rw-r--r--. 1 mysql mysql     1112 Oct 20 14:39 server-cert.pem
-rw-------. 1 mysql mysql     1680 Oct 20 14:39 server-key.pem
drwxr-x---. 2 mysql mysql       28 Oct 20 14:39 sys
-rw-r-----. 1 mysql mysql     1510 Mar 20 11:23 sztech.err
-rw-r-----. 1 mysql mysql        5 Mar 20 11:23 sztech.pid
-rw-r-----. 1 mysql mysql 10485760 Mar 20 11:23 undo_001
-rw-r-----. 1 mysql mysql 10485760 Mar 20 11:23 undo_002
[root@sztech data]#
[root@sztech data]# tail -100f sztech.err
2022-10-20T06:50:56.556398Z 0 [Warning] [MY-010915] [Server] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2022-10-20T06:50:56.557981Z 0 [System] [MY-010116] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.11) starting as process 4369
2022-10-20T06:50:57.164941Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2022-10-20T06:50:57.188530Z 0 [System] [MY-010931] [Server] /usr/local/mysql/bin/mysqld: ready for connections. Version: '8.0.11'  socket: '/usr/local/mysql/mysql.sock'  port: 3306  MySQL Community Server - GPL.
2023-03-20T03:23:29.642861Z 0 [Warning] [MY-010915] [Server] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2023-03-20T03:23:29.739682Z 0 [System] [MY-010116] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.11) starting as process 1508
2023-03-20T03:23:38.291382Z 0 [System] [MY-010229] [Server] Starting crash recovery...
2023-03-20T03:23:38.291627Z 0 [System] [MY-010232] [Server] Crash recovery finished.
2023-03-20T03:23:38.477965Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2023-03-20T03:23:38.671308Z 0 [System] [MY-010931] [Server] /usr/local/mysql/bin/mysqld: ready for connections. Version: '8.0.11'  socket: '/usr/local/mysql/mysql.sock'  port: 3306  MySQL Community Server - GPL.
以上是错误日志文件的一部分,主要记载了系统的一些运行错误。


删除错误日志
在 MySQL 中,可以使用 mysqladmin 命令来开启新的错误日志,以保证 MySQL 服务器上的硬盘空间。mysqladmin 命令的语法如下:
mysqladmin -uroot -p flush-logs
执行该命令后,MySQL 服务器首先会自动创建一个新的错误日志,然后将旧的错误日志更名为 filename.err-old。

MySQL 服务器发生异常时,管理员可以在错误日志中找到发生异常的时间、原因,然后根据这些信息来解决异常。对于很久之前的错误日志,查看的可能性不大,可以直接将这些错误日志删除。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-11-28 16:23 , Processed in 0.089186 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表