MySQL日志管理详解
日志文件对于一个服务器来说是非常重要的,它记录着服务器的运行信息,许多操作都会写日到日志文件,通过日志文件可以监视服务器的运行状态及查看服务器的性能,还能对服务器进行排错与故障处理,MySQl中有六种不同类型的日志。
一、日志种类
1、错误日志:记录启动、运行或停止时出现的问题,一般也会记录警告信息。
2、一般查询日志:记录建立的客户端连接和执行的语句。
3、慢查询日志:记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询,可以帮我们定位服务器性能问题。
4、二进制日志:任何引起或可能引起数据库变化的操作,主要用于复制和即时点恢复。
5、中继日志:从主服务器的二进制日志文件中复制而来的事件,并保存为的日志文件。
6、事务日志:记录InnoDB等支持事务的存储引擎执行事务时产生的日志。
MySQL中对于日志文件的环境比变量非常多,可以使用以下命令来查看:
show global variables like '%log%';
结果如下:
Variable_name Value
---------------------------------------------------------------
back_log 50
binlog_cache_size 32768
binlog_direct_non_transactional_updates OFF
binlog_format STATEMENT
binlog_stmt_cache_size 32768
expire_logs_days 0
general_log OFF
general_log_file C:\ProgramData\MySQL\MySQL Server 5.5\Data\WIN-19A0VNP9PVD.log
innodb_flush_log_at_trx_commit 1
innodb_locks_unsafe_for_binlog OFF
innodb_log_buffer_size 1048576
innodb_log_file_size 25165824
innodb_log_files_in_group 2
innodb_log_group_home_dir .\
innodb_mirrored_log_groups 1
log OFF
log_bin OFF
log_bin_trust_function_creators OFF
log_error C:\ProgramData\MySQL\MySQL Server 5.5\Data\WIN-19A0VNP9PVD.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 C:\ProgramData\MySQL\MySQL Server 5.5\Data\WIN-19A0VNP9PVD-slow.log
sql_log_bin ON
sql_log_off OFF
sync_binlog 0
sync_relay_log 0
sync_relay_log_info 0
二、日志功能
1、错误日志:错误日志主要记录如下几种日志:
服务器启动和关闭过程中的信息
服务器运行过程中的错误信息
事件调度器运行一个事件时产生的信息
在从服务器上启动从服务器进程时产生的信息
错误日志定义:
可以用–log-error [ = file_name ]选项来指定mysqld保存错误日志文件的位置。如果没有给定file_name值,mysqld使用错误日志名host_name.err 并在数据目录中写入日志文件。如果你执行FLUSH LOGS,错误日志用-old重新命名后缀并且mysqld创建一个新的空日志文件。(如果未给出–log-error选项,则不会重新命名)。
错误日志一般有以上两个变量可以定义:
错误日志文件:log_error
启用警告信息:log_warnings (默认启用)
show global variables like 'log_error';
log_error C:\ProgramData\MySQL\MySQL Server 5.5\Data\WIN-19A0VNP9PVD.err
show global variables like 'log_warnings';
log_warnings 1
2、一般查询日志
启动开关:general_log={ON|OFF}
日志文件变量:general_log_file [ =/PATH/TO/file]
全局日志开关:log={ON|OFF} 该开关打开后,所有日志都会被启用
记录类型:log_output={TABLE|FILE|NONE}
log_output定义了日志的输出格式,可以是表,文件,若设置为NONE,则不启用日志,因此,要启用通用查询日志,需要至少配置general_log=ON,log_output={TABLE|FILE}。而general_log_file如果没有指定,默认名是host_name.log。由于一般查询使用量比较大,启用写入日志文件,服务器的I/O操作较多,会大大降低服务器的性能,所以默认为关闭的。MySQL日志管理详解
日志文件对于一个服务器来说是非常重要的,它记录着服务器的运行信息,许