MYSQL有不同类型的日志文件(各自存储了不同类型的日志),从它们当中可以查询到MYSQL里都做了些什么,对于MYSQL的管理工作,这些日志文件是不可缺少的
1.错误日志 Error Log
错误日志记录了mysql server 运行过程中所有较为严重的警告和错误信息,以及mysql每次启动和关闭的详细信息。
开启方法在启动mysql 时候加上--log-error选项。错误日志默认放在数据目录下,以hostname.err命名。但是可以使用命令--log-error[=file_name]修改其存放目录和文件名。
有时候,希望将错误日志做备份并重新开始记录,使用flush logs命令备份文件以.old结尾。
My.ini配置信息:
#Enter a name for the error log file. Otherwise a default name will be used.
#log-error=d:/mysql_log_err.txt
2.二进制日志:Binary Log&Binary Log Index
就是常说的binlog,是mysql中最为重要的日志之一。在通过--log-bin[=file_name]打开记录的功能之后,mysql会将所有修改数据库数据的query以二进制的时候记录到日志文件中,其中包括每一条query所执行的时间,所消耗的资源,以及相关事务信息,如果没有指定file_name,会在数据目录下记录为mysql-bin.****。
binlog还有其他一些附加选项参数:
--max_binlog_size设置binlog的最大存储上限,当日志到达这个上限的时候,会重新创建一个文件记录。
--binlog-do-db=db_name参数告诉mysql只对某个数据库记录binlog
--binlog-ignore-db=db_name参数告诉mysql忽略对某个数据库记录binlog
My.ini配置信息:
#Enter a name for the binary log. Otherwise a default name will be used.
#log-bin=d:/mysql_log_bin
3.更新日志:update log
mysql5.0以后不支持,和binlog类似,但是不是以二进制形式记录,是简单的文本格式记录
My.ini配置信息:
#Enter a name for the update log file. Otherwise a default name will be used.
#log-update=d:/mysql_log_update.txt
4.查询日志:query log
查询日志记录mysql中所有的query,可通过--log[=file_name]来打开该日志,由于记录了所有的query,体积庞大,开启后对性能也有较大的影响,只在跟踪某些特殊的query性能问题时候才会短暂开启该功能。默认的文件名hostname.log。
My.ini配置信息:
#Enter a name for the query log file. Otherwise a default name will be used.
#log=d:/mysql_log.txt
5.慢查询日志:slow query log
通过--log-slow-queries[=file_name]来打开该功能并设置记录位置和文件名,默认文件名:hostname-slow.log,默认目录也是数据目录。
My.ini配置信息:
#Enter a name for the slow query log file. Otherwise a default name will be used.
#long_query_time =1
#log-slow-queries= d:/mysql_log_slow.txt
6.InnoDB的在线的REDO日志:InnoDB REDO Log
REDO日志中记录了InnoDB所做的所有物理变更和事务信息,通过REDO日志和UNDO信息,InnoDB保证了在任何情况下的事务安全性。InnoDB的REDO日志同样默认存放在数据目录下,可以通过innodb_log_group_home_dir来更改设置日志的存放位置。通过innodb_log_files_in_group设置日志的数量。