MySQL 错误日志(Error Log)

    同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分。MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等。这些日志可以帮助我们定位mysqld内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等等。本文主要描述错误日志文件。

1、MySQL日志文件系统的组成    a、错误日志:记录启动、运行或停止mysqld时出现的问题。    b、通用日志:记录建立的客户端连接和执行的语句。    c、更新日志:记录更改数据的语句。该日志在MySQL 5.1中已不再使用。    d、二进制日志:记录所有更改数据的语句。还用于复制。    e、慢查询日志:记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询。    f、Innodb日志:innodb redo log    缺省情况下,所有日志创建于mysqld数据目录中。    可以通过刷新日志,来强制mysqld来关闭和重新打开日志文件(或者在某些情况下切换到一个新的日志)。    当你执行一个FLUSH LOGS语句或执行mysqladmin flush-logs或mysqladmin refresh时,则日志被老化。    对于存在MySQL复制的情形下,从复制服务器将维护更多日志文件,被称为接替日志。

2、错误日志    错误日志是一个文本文件。    错误日志记录了MySQL Server每次启动和关闭的详细信息以及运行过程中所有较为严重的警告和错误信息。    可以用--log-error[=file_name]选项来开启mysql错误日志,该选项指定mysqld保存错误日志文件的位置。    对于指定--log-error[=file_name]选项而未给定file_name值,mysqld使用错误日志名host_name.err 并在数据目录中写入日志文件。    在mysqld正在写入错误日志到文件时,执行FLUSH LOGS 或者mysqladmin flush-logs时,服务器将关闭并重新打开日志文件。    建议在flush之前手动重命名错误日志文件,之后mysql服务将使用原始文件名打开一个新文件。    以下为错误日志备份方法:       shell> mv host_name.err host_name.err-old       shell> mysqladmin flush-logs       shell> mv host_name.err-old backup-directory

3、实战演示 #启用错误日志,缺省情况下文件名为: hostname.err #下面2种方式均可进行错误日志的配置 --log-error=file_name #命令行选项(command option) log-error=file_Name   #配置文件(configure file)

#查看当前的错误日志配置,缺省情况下位于数据目录 mysql> show variables like 'log_error'; +---------------+-------------------------+ | Variable_name | Value                   | +---------------+-------------------------+ | log_error     | /var/lib/mysql/SZDB.err | +---------------+-------------------------+ 1 row in set (0.00 sec)

#查看当前mysql server错误日志文件 SZDB:/var/lib/mysql # tail SZDB.err 140906 22:06:45 InnoDB: Completed initialization of buffer pool 140906 22:06:45 InnoDB: highest supported file format is Barracuda. 140906 22:06:45  InnoDB: Waiting for the background threads to start 140906 22:06:46 InnoDB: 5.5.37 started; log sequence number 1605345 140906 22:06:47 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306 140906 22:06:47 [Note]   - '0.0.0.0' resolves to '0.0.0.0'; 140906 22:06:47 [Note] Server socket created on IP: '0.0.0.0'. 140906 22:06:47 [Note] Event Scheduler: Loaded 0 events 140906 22:06:47 [Note] /usr/sbin/mysqld: ready for connections. Version: '5.5.37-log'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Server (GPL)

#停止mysql服务器 SZDB:~ # service mysql stop Shutting down MySQL....                                               done

#使用配置文件来设置log-error参数 SZDB:~ # echo "log-error=/tmp/SZDB.err">>/etc/my.cnf SZDB:~ # echo "skip_opt">>/etc/my.cnf     #添加一个异常参数skip_opt SZDB:~ # grep -v ^# /etc/my.cnf [mysqld] sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES log-error=/tmp/SZDB.err skip_opt

#Author : Leshami #Blog   : http://blog.csdn.net/leshami #启动mysql服务器 SZDB:~ # mysqld_safe --user=mysql & [1] 7315 SZDB:~ # 140907 13:40:33 mysqld_safe Logging to '/tmp/SZDB.err'. 140907 13:40:33 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 140907 13:40:33 mysqld_safe mysqld from pid file /var/lib/mysql/SZDB.pid ended [1]+  Done                    mysqld_safe --user=mysql SZDB:~ # more /tmp/SZDB.err 140907 13:40:33 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 140907 13:40:33 [ERROR] /usr/sbin/mysqld: ambiguous option '--skip-opt' (--skip-optimizer_prune_level) 140907 13:40:33 [ERROR] Aborting          #出现错误提示为有歧义的参数,实例终止 140907 13:40:33 mysqld_safe mysqld from pid file /var/lib/mysql/SZDB.pid ended

#修改my.cnf,删除skip-opt选项 SZDB:~ # vi /etc/my.cnf SZDB:~ # grep -v ^# /etc/my.cnf [mysqld] sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES log-error=/tmp/SZDB.err

#再次启动mysql服务器 SZDB:~ # mysqld_safe --user=mysql &     [1] 7511 SZDB:~ # 140907 13:43:23 mysqld_safe Logging to '/tmp/SZDB.err'. 140907 13:43:23 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql SZDB:~ # more /tmp/SZDB.err 140907 13:40:33 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 140907 13:40:33 [ERROR] /usr/sbin/mysqld: ambiguous option '--skip-opt' (--skip-optimizer_prune_level) 140907 13:40:33 [ERROR] Aborting #以下内容为正常启动的相关信息 140907 13:40:33 mysqld_safe mysqld from pid file /var/lib/mysql/SZDB.pid ended 140907 13:43:23 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 140907 13:43:23 [Note] Plugin 'FEDERATED' is disabled. 140907 13:43:23 InnoDB: The InnoDB memory heap is disabled 140907 13:43:23 InnoDB: Mutexes and rw_locks use GCC atomic builtins 140907 13:43:23 InnoDB: Compressed tables use zlib 1.2.3 140907 13:43:23 InnoDB: Using Linux native AIO 140907 13:43:23 InnoDB: Initializing buffer pool, size = 128.0M 140907 13:43:23 InnoDB: Completed initialization of buffer pool 140907 13:43:23 InnoDB: highest supported file format is Barracuda. 140907 13:43:23  InnoDB: Waiting for the background threads to start 140907 13:43:24 InnoDB: 5.5.37 started; log sequence number 1620641 140907 13:43:25 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306 140907 13:43:25 [Note]   - '0.0.0.0' resolves to '0.0.0.0'; 140907 13:43:25 [Note] Server socket created on IP: '0.0.0.0'. 140907 13:43:25 [Note] Event Scheduler: Loaded 0 events 140907 13:43:25 [Note] /usr/sbin/mysqld: ready for connections. Version: '5.5.37-log'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Server (GPL)

从上面的错误日可以看出,错误日志文件的格式,通常如下:   时间  [错误级别]  错误信息   有些日志信息不一定包含错误级别

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏python全栈布道师

django+vue环境搭建

npm install -g cnpm --registry=https://registry.npm.taobao.org

4838
来自专栏乐沙弥的世界

Percona XtraDB Cluster Strict Mode(PXC 5.7)

在Percona XtraDB Cluster集群架构中,为了避免多主节点导致的数据异常,或者说一些不被支持的特性引发的数据不一致的情形,PXC集群可以通过配置...

1512
来自专栏Hadoop实操

如何配置Kerberos服务的高可用

在前面的文章中Fayson介绍过《如何在CDH集群启用Kerberos》,对于一个启用了Kerberos的正式生产系统,还需要考虑KDC的高可用。而Kerber...

6789
来自专栏云计算

如何在Debian 9上设置MariaDB

MariaDB是MySQL的直接替代品。它致力于成为寻求强大,可扩展且可靠的SQL Server的数据库专业人员的合理选择。本指南将帮助初学者在Debian 9...

1.2K3
来自专栏乐沙弥的世界

MySQL 数据库的启动与关闭

    MySQL数据库服务器通常指的的是mysqld,而命令行mysql则是mysql客户端程序,这两个概念通常容易混淆。通常启动mysql服务器即是启动my...

2504
来自专栏运维小白

Linux基础(day54)

13.1 设置更改root密码 设置更改root密码目录概要 /usr/local/mysql/bin/mysql -uroot 更改环境变量PATH,增加my...

2078
来自专栏iMySQL的专栏

MySQL FAQ 系列 : 如何安全地关闭 MySQL 实例

本文分析了 mysqld 进程关闭的过程,以及如何安全、缓和地关闭 MySQL 实例,对这个过程不甚清楚的同学可以参考下。

2840
来自专栏北京马哥教育

CentOS下MySQL移至MariaDB

Google都将MySQL移至MariaDB了,我的朋友也Ubuntu下移至MariaDB,我还是不能落后吧,今天将CentOS下MySQL移至MariaDB...

3067
来自专栏运维前线

Windows Server上安装部署Zabbix agent(最新版)

Windows Server上安装部署Zabbix agent 下载并解压到指定目录 Zabbix下载页面:https://www.zabbix.com/do...

6296
来自专栏Python小屋

使用Python开发SQLite代理服务器

SQLite数据库使用单个磁盘文件,并且不需要像Oracle、MSSQL、MySQL等数据库管理系统那样启动服务,使用非常灵活方便。但是SQLite也有个很严重...

4296

扫码关注云+社区

领取腾讯云代金券