同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分。MySQL有几种不同的日志文件。通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等。

这些日志能够帮助我们定位mysqld内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等等。本文主要描写叙述错误日志文件。

1、MySQL日志文件系统的组成
   a、错误日志:记录启动、运行或停止mysqld时出现的问题。
   b、通用日志:记录建立的client连接和运行的语句。
   c、更新日志:记录更改数据的语句。该日志在MySQL 5.1中已不再使用。
   d、二进制日志:记录全部更改数据的语句。

还用于复制。

e、慢查询日志:记录全部运行时间超过long_query_time秒的全部查询或不使用索引的查询。
   f、Innodb日志:innodb redo log
  
   缺省情况下,全部日志创建于mysqld数据文件夹中。

能够通过刷新日志,来强制mysqld来关闭和又一次打开日志文件(或者在某些情况下切换到一个新的日志)。
   当你运行一个FLUSH LOGS语句或运行mysqladmin flush-logs或mysqladmin refresh时。则日志被老化。
   对于存在MySQL复制的情形下。从复制server将维护很多其它日志文件,被称为接替日志。

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时。server将关闭并又一次打开日志文件。
   建议在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)

#停止mysqlserver
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
#启动mysqlserver
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

#再次启动mysqlserver
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)

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

MySQL 错误日志(Error Log)的更多相关文章

  1. mysql错误日志/var/log/mariadb/mariadb.log,二进制日志

    mariadb-日志 IT_luo关注0人评论65人阅读2018-10-15 08:59:03   mariadb日志 mariadb日志: 1.查询日志:query log: 2.慢查询日志:slo ...

  2. MySQL8.0错误日志Error log

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 理论知识 错误日志内容 错误日志包含mysqld启动和关闭的时间信息,还包含诊断消息,如服务器启动和关闭期间以及服务器运行 ...

  3. ubuntu1404下Apache2.4错误日志error.log路径位置

    首先打开/etc/apache2路径下的apache2.conf文件,找到ErrorLog如下 ErrorLog ${APACHE_LOG_DIR}/error.log 这里{APACHE_LOG_D ...

  4. MySQL错误日志(Error Log)

    错误日志是一个文本文件,记录了 MySQL Server 每次启动和关闭的详细信息以及运行过程中所有较为严重的警告和错误信息.在遇到问题时,应该首先查看这个文件. 如何开启 使用命令 SHOW VAR ...

  5. MySQL错误日志总结

    MySQL错误日志是记录MySQL 运行过程中较为严重的警告和错误信息,以及MySQL每次启动和关闭的详细信息.错误日志的命名通常为hostname.err.其中,hostname表示服务器主机名. ...

  6. logstash采集tomcat日志、mysql错误日志

    input{ file { path => "/opt/Tomcat7.0.28/logs/*.txt" start_position => "beginni ...

  7. 【MySQL】关于MySQL错误日志信息的收集

    为方便维护MySQL,写了个脚本用以提供收集错误信息的接口.这些错误信息来自与MySQL错误日志,而 通过grep mysql可以获取error-log的路径. #!/usr/bin/env pyth ...

  8. Druid 1.1.24 在控制台打印"discard long time none received connection. , jdbcUrl : jdbc:mysql://...."错误日志

    Druid 1.1.24 在控制台打印"discard long time none received connection. , jdbcUrl : jdbc:mysql://...&qu ...

  9. mysql错误:Error Code: 1175. You are using safe update mode and you tried to update a table……

    今天遇到一个mysql错误:   Error Code: . You are using safe update mode and you tried to update a table withou ...

随机推荐

  1. Android Camera拍照 压缩

    http://www.linuxidc.com/Linux/2014-12/110924.htm package com.klp.demo_025; import java.io.ByteArrayI ...

  2. asp.net中的<%%>形式的详细用法实例讲解

    asp.net中的代码分离模式我们肯定都不陌生,C#(或者其它语言)写的代码一般不会和设计语言HTML混在一起,但是有的时候也避免不了,这时就会在UI页面里用<%%>来绑定显示.绑定变量数 ...

  3. python 小记 整数与小数id

    上图,id A =B id 1.0  c != d 以后少用 带小数后位的数字.调用内存地址不一样

  4. jQuery Mobile 控制 select 的显示隐藏 display none

    如需要动态控制下拉选择菜单select的显隐,一般考虑使用display:none这个方法. 但在jQueryMobile中的select添加自定义的css,display:none 是无效的. 解决 ...

  5. HTTP 状态代码

    转自:https://support.google.com/webmasters/answer/40132 HTTP 状态代码 如果向您的服务器发出了某项请求要求显示您网站上的某个网页(例如,当用户通 ...

  6. windows提权操作以及系统开机关机重启代码(用到了LookupPrivilegeValue和AdjustTokenPrivileges调整进程的Token权限)

    对于UAC提权操作,一般在编译期间,如果程序有需求要提权,会在编译器里设置,vs2010比较简单,在工程属性里可以直接设置,vs2005稍微有点儿麻烦,参考这篇文章: http://www.seany ...

  7. jQuery&HTML&CSS3实现垂直手风琴折叠菜单方法讲解

    在网页制作中我们常常需要折叠式的菜单,在折叠菜单中,手风琴特效的菜单是非常受欢迎,下面就讲解使用jQuery+HTML+CSS3实现垂直手风琴折叠菜单的方法. jQuery实现垂直手风琴折叠菜单示例代 ...

  8. (转载)PHP json_encode() 函数介绍

    (转载) 在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它. 这个函数的功能是将数值转换成json数据存 ...

  9. 未能导入activex控件,请确保它正确注册"的完美解决方案

    这个错误“未能导入activex控件,请确保它正确注册”昨天下午让我和我同事花费了3个小时来调试这个错误,在使用VS2010的winfrom编程时加入com组件的时候,报这个错误(以一个客户的机器上) ...

  10. C++之拷贝构造函数

    为什么要引入拷贝构造函数?(提出问题) 作用:创建一个对象的同时,使用一个已经存在的对象给另一个对象赋值 做比较:拷贝构造函数:对象被创建 +  用一个已经存在的对象 进行初始化 拷贝赋值函数:对象已 ...