`
阿尔萨斯
  • 浏览: 4107545 次
社区版块
存档分类
最新评论

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)

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

鹏城DBA总群

分享到:
评论

相关推荐

    MySQL的redo log、undo log、binlog

    文章目录一、MySQL日志文件类型二、几种日志的对比2-1、用途 redo log undo log binlog2-2、存储内容、格式 redo log undo log binlog2-3、日志生成 redo log undo ...错误日志(errorlog) 慢查询日志(slow

    MySQL中常见的几种日志汇总

    1.错误日志(errorlog) 错误日志记录着 mysqld 启动和停止,以及服务器在运行过程中发生的错误及警告相关信息。当数据库意外宕机或发生其他错误时,我们应该去排查错误日志。 log_error 参数控制错误日志是否写入...

    Mysql启动中 InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes 的问题

    Mysql可以正常启动,但innodb的表无法使用 在错误日志里你会看到如下输出: InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes 现在需要做的事情就是把原来的 innodb 的ib_logfile×...

    MySQL日志文件详解

    MySQL日志文件分类 1.错误日志(Error Log) 2.二进制日志(Binary Log & Binary Log Index) 3.通用查询日志(query log) 4.慢查询日志(slow query log) 5.Innodb的在线 redo 日志(innodb redo log) 6.更新日

    详解grep获取MySQL错误日志信息的方法

    该模块用于提取每天mysql日志中的异常或错误信息 author: xiaomo email: moxiaomomo@gmail.com """ import os import sys import string from datetime import * # 預設字符解碼器為utf-8 reload

    MySQL六大日志详解

    分别是:重做日志(redo log)、回滚日志(undo log)、二进制日志(binlog)、错误日志(errorlog)、慢查询日志(slow query log)、一般查询日志(general log),中继日志(relay log)。 其中 重做日志和回滚...

    MySQL的有哪些日志文件,都有什么作用?

    MySQL中有八种日志文件,分别是:重做日志(redo log),回滚日志(undo log),二进制日志(binlog),错误日志(errorlog),慢查询日志(slow query log),一般查询日志(general log),中继日志(relay log)...

    lib_mysqludf_log:将调试信息写入日志文件的 UDF 库

    log_error将字符串参数作为新行写入错误日志。 每次调用 log_error 都会写入日志行。 在包含对 log_error 调用的调用的语句完成后刷新日志。 因此,如果在 SELECT 语句中使用log_error则在执行 SQL 语句后日志消息...

    新版 MySQL DBA 高级视频 基于MySQL 5.7 MySQL 8.0版本.rar

    │ 第二十一课MySQL常见错误-converted.pdf │ 第二十课MySQL索引和调优.pdf │ 第二课MySQL入门介绍.pdf │ 第五课MySQL常用函数介绍.pdf │ 第八课InnoDB内核.pdf │ 第六课SQL高级应用.pdf │ 第十一课MySQL表...

    log4j日志驱动包

    log4j.appender.ROLLING_FILE.Threshold=ERROR log4j.appender.ROLLING_FILE.File=rolling.log //文件位置,也可以用变量${java.home}、rolling.log log4j.appender.ROLLING_FILE.Append=true //true:添加 false:覆盖...

    Windows下MySQL日志基本的查看以及导入导出用法教程

    1.错误日志(The error log):记录了数据库启动、运行以及停止过程中错误信息; 2.ISAM操作日志(The isam log):记录了所有对ISAM表的修改,该日志仅仅用于调试ISAM模式; 3.SQL执行日志(The query log):记录了...

    ERROR: Error in Log_event::read_log_event()

    分析从库1062问题,解析从库binlog日志,报错如下[root@xxxdb0402 tmp]# mysqlbinlog mysql-bin.004271 > 4.logERROR: Error in Log_event::read_log_event(): ‘read error’, data_len: 438, event_type: 2[root@...

    开启bin-log日志mysql报错的解决方法

    出错信息: 代码如下:ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_...

    解决 MySQL 3534 Error

    目录MySQL 3534 Error1. 问题2. 解决步骤3. Bug 日志 MySQL 3534 Error 1. 问题 使用 Mac Windows 时,MySQL Server 不能正常运行。...-2017-11-07T12:25:58 [ERROR] InnoDB: File .\ib_logfile101

    Ubuntu下启动、停止、重启MySQL,查看错误日志命令大全

    cat /var/log/mysql/error.log 5)不支持中文 修改 /etc/mysql/my.cnf 在 [client] 下面增加: default-character-set=utf8 或 character_set_server=utf8 在 [mysqld] 下面增加: default-char

    MySQL日志设置及查看方法

    MySQL有以下几种日志: 错误日志: -log-err 查询日志: -log 慢查询日志: -log-slow-queries 更新日志: -log-update 二进制日志: -log-bin ...用–log- error[=file_name]选项来指定mysqld保存错误日志文件的位置。

    mysql 有关“InnoDB Error ib_logfile0 of different size”错误

    1,查看Mysqld(/var/log/mysqld.log)日志,发现以下错误:InnoDB: Error: log file /usr/local/mysql/data/ib_logfile0 is of different size 05242880 bytesInnoDB: than specified in the .cnf file 0 104857600...

    php-error-log-parser

    php错误日志解析器 如何在生产中使用 创建mysql表: CREATE TABLE `php_error` ( `datetime` datetime DEFAULT NULL, `host` varchar(32) NOT NULL, `program` varchar(3) NOT NULL, `message` varchar(2048) ...

    MySQL5.6.24-win32

    log-error 日志存放路径(若没有文件夹则必须手动创建文件夹) port 服务端口 --------举个栗子---------- 我的mysql跟路径为 D:\DB\MySQL basedir = D:\DB\MySQL datadir = D:\DB\MySQL\data tmpdir = D:\DB\...

Global site tag (gtag.js) - Google Analytics