未加星标

MySQL日志详细解析

字体大小 | |
[数据库(mysql) 所属分类 数据库(mysql) | 发布者 店小二03 | 时间 2017 | 作者 红领巾 ] 0人收藏点击收藏

mysql日志:

主要包含:错误日志、查询日志、慢查询日志、事务日志、二进制日志;

日志是mysql数据库的重要组成部分。日志文件中记录着mysql数据库运行期间发生的变化;也就是说用来记录mysql数据库的客户端连接状况、SQL语句的执行情况和错误信息等。当数据库遭到意外的损坏时,可以通过日志查看文件出错的原因,并且可以通过日志文件进行数据恢复。

错误日志

在mysql数据库中,错误日志功能是默认开启的。并且,错误日志无法被禁止。默认情况下,错误日志存储在mysql数据库的数据文件中。错误日志文件通常的名称为hostname.err。其中,hostname表示服务器主机名。

错误日志信息可以自己进行配置的,错误日志所记录的信息是可以通过log-error和log-warnings来定义的,其中log-err是定义是否启用错误日志的功能和错误日志的存储位置,log-warnings是定义是否将警告信息也定义至错误日志中。默认情况下错误日志大概记录以下几个方面的信息:服务器启动和关闭过程中的信息(未必是错误信息,如mysql如何启动InnoDB的表空间文件的、如何初始化自己的存储引擎的等等)、服务器运行过程中的错误信息、事件调度器运行一个事件时产生的信息、在从服务器上启动服务器进程时产生的信息。

下面我们来定义mysql错误日志的功能:

一般而言,日志级别的定义没有回话变量都只是在全局级别下进行定义。

mysql> SHOW GLOBAL VARIABLES LIKE '%log%';

+-----------------------------------------+-----------------------------------+

| Variable_name | Value |

+-----------------------------------------+-----------------------------------+

| back_log | 50 |

| binlog_cache_size | 32768 |

| binlog_direct_non_transactional_updates | OFF |

| binlog_format | MIXED |

| binlog_stmt_cache_size | 32768 |

| expire_logs_days | 0 |

| general_log | OFF |

| general_log_file | /mydata/data/linuxidc.log |

| innodb_flush_log_at_trx_commit | 1 |

| innodb_locks_unsafe_for_binlog | OFF |

| innodb_log_buffer_size | 8388608 |

| innodb_log_file_size | 5242880 |

| innodb_log_files_in_group | 2 |

| innodb_log_group_home_dir | ./ |

| innodb_mirrored_log_groups | 1 |

| log | OFF |

| log_bin | ON |

| log_bin_trust_function_creators | OFF |

| log_error | /mydata/data/linuxidc.magedu.com.err |定义错误日志

| log_output | FILE |

| log_queries_not_using_indexes | OFF |

| log_slave_updates | OFF |

| log_slow_queries | OFF |

| log_warnings | 1 是否把警告信息写入错误日志中

| max_binlog_cache_size | 18446744073709547520 |

| max_binlog_size | 1073741824 |

| max_binlog_stmt_cache_size | 18446744073709547520 |

| max_relay_log_size | 0 |

| relay_log | |

| relay_log_index | |

| relay_log_info_file | relay-log.info |

| relay_log_purge | ON |

| relay_log_recovery | OFF |

| relay_log_space_limit | 0 |

| slow_query_log | OFF |

| slow_query_log_file | /mydata/data/linuxidc-slow.log |

| sql_log_bin | ON |

| sql_log_off | OFF |

| sync_binlog | 0 |

| sync_relay_log | 0 |

| sync_relay_log_info | 0 |

+-----------------------------------------+-----------------------------------+

其中,log_error可以直接定义为文件路径,也可以为ON|OFF;log_warings只能使用1|0来定义开关启动。

更改错误日志位置可以使用log_error来设置形式如下:

[[email protected] data]# vim /etc/my.cnf [mysqld] Log_error=DIR/[filename]

解析:其中,DIR参数指定错误日志的路径filename参数是错误日志的名称,没有指定该参数时默认为主机。重启mysql服务器即可生效。

查看mysql错误日志:

[[email protected] data]# tail -20 linuxidc.magedu.com.err

130813 15:30:50 InnoDB: Starting shutdown...

130813 15:30:51 InnoDB: Shutdown completed; log sequence number 1630920

130813 15:30:51 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete

130813 15:30:52 mysqld_safe mysqld from pid file /mydata/data/linuxidc.magedu.com.pid ended

130813 15:30:53 mysqld_safe Starting mysqld daemon with databases from /mydata/data

130813 15:30:54 InnoDB: The InnoDB memory heap is disabled #禁用了InnoDB memory的堆功能。

130813 15:30:54 InnoDB: Mutexes and rw_locks use GCC atomic builtins #Mutexes(互斥量)和rw_locks(行级锁)是GCC编译的是InnoDB内置的。

130813 15:30:54 InnoDB: Compressed tables use zlib 1.2.3 #默认压缩工具是zlib

130813 15:30:55 InnoDB: Initializing buffer pool, size = 128.0M #InnoDB引擎的缓冲池(buffer pool)的值大小

130813 15:30:55 InnoDB: Completed initialization of buffer pool

130813 15:30:55 InnoDB: highest supported file format is Barracuda.

130813 15:30:57 InnoDB: Waiting for the background threads to start

130813 15:30:58 InnoDB: 5.5.33 started; log sequence number 1630920

130813 15:30:58 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306 130813 15:30:58 [Note] - '0.0.0.0' resolves to '0.0.0.0'; #0.0.0.0会反解主机名,这里反解失败 130813 15:30:58 [Note] Server socket created on IP: '0.0.0.0'. 130813 15:30:58 [Note] Event Scheduler: Loaded 0 events #事件调度器没有任何事件,因为没有装载。 130813 15:30:58 [Note] /usr/local/mysql/bin/mysqld: ready for connections. #mysql启动完成等待客户端的请求。

Version: '5.5.33-log' socket: '/tmp/mysql.sock' port: 3306 Source distribution #创建一个本地sock用于本地连接。

删除错误日志:

在mysql5.5.7之前:数据库管理员可以删除很长时间之前的错误日志,以保证mysql服务器上的硬盘空间。mysql数据库中,可以使用mysqladmin命令开启新的错误日志。mysqladmin命令的语法如下:mysqladmin u root pflush-logs也可以使用登录mysql数据库中使用FLUSHLOGS语句来开启新的错误日志。

在mysql5.5.7之后:服务器将关闭此项功能。只能使用重命名原来的错误日志文件,手动冲洗日志创建一个新的:方式如下:

[[email protected] data]# mv linuxidc.magedu.com.err linuxidc.magedu.com.err.old [[email protected] data]# mysqladmin flush-logs [[email protected] data]# ls

hellodb myclass mysql-bin.000003 mysql-bin.index linuxidc.magedu.com.pid ibdata1 mysql mysql-bin.000004 performance_schema ib_logfile0 mysql-bin.000001 linuxidc.magedu.com.err test ib_logfile1 mysql-bin.000002 linuxidc.magedu.com.err.old

更多信息请查阅官方文档:http://dev.mysql.com/doc/refman/5.5/en/error-log.html

查询日志:

默认情况下查询日志是关闭的。由于查询日志会记录用户的所有操作,其中还包含增删查改等信息,在并发操作大的环境下会产生大量的信息从而导致不必要的磁盘IO,会影响mysql的性能的。如若不是为了调试数据库的目的建议不要开启查询日志。

查看查询日志是否开启:

mysql> SHOW GLOBAL VARIABLES LIKE '%log%';

+-------------

本文数据库(mysql)相关术语:navicat for mysql mysql workbench mysql数据库 mysql 存储过程 mysql安装图解 mysql教程 mysql 管理工具

分页:12
转载请注明
本文标题:MySQL日志详细解析
本站链接:http://www.codesec.net/view/530108.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 数据库(mysql) | 评论(0) | 阅读(61)