mysql日志文件类型有哪些,mysql日志文件类型详解

发布时间:2020-05-25编辑:脚本学堂
有关mysql日志文件类型的经典教程,mysql日志文件类型有哪些,mysql错误日志类型与mysql慢查询日志类型等,mysql二进制日志怎么用,不了解的朋友参考下。

mysqlrizhi/ target=_blank class=infotextkey>mysql日志文件类型

1、【mysql错误日志 Error Log】---记录启动、运行或停止mysqld时出现的问题
可以用--log-error[=file_name]选项来指定mysqld保存错误日志文件的位置。如果没有给定file_name值,mysqld使用错误日志名host_name.err 并在数据目录中写入日志文件。

如果执行FLUSH LOGS,错误日志用-old重新命名后缀并且mysqld创建一个新的空日志文件(如果未给出--log-error选项,则不会重新命名)。
 
2、【mysql慢查询日志Slow Log】---记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询,mysql5.1版本之后可动态开启和关闭记录
用--log-slow-queries[=file_name]选项启动时,mysqld写一个包含所有执行时间超过long_query_time秒的sql语句的日志文件。

获得初使表锁定的时间不算作执行时间。
如果没有给出file_name值, 默认未主机名,后缀为-slow.log。
如果给出了文件名,但不是绝对路径名,文件则写入数据目录。
语句执行完并且所有锁释放后记入mysql慢查询日志,记录顺序可以与执行顺序不相同。

慢查询日志可以用来找到执行时间长的查询,可以用于优化。
但是,检查又长又慢的查询日志会很困难。
要想容易些,可以使用mysqldumpslow命令获得日志中显示的查询摘要来处理慢查询日志。

影响慢查日志记录的设置有:
 

log-slow-admin-statements -----慢管理语句,例如OPTIMIZE TABLE、ANALYZE TABLE和 ALTER TABLE写入慢查询日志。
log-queries-not-using-indexes
long_query_time = 1

3、【通用查询日志General Qurey Log】---记录建立的客户端连接和执行的所有语句,mysql5.1版本之后可动态开启和关闭记录
如果你想要知道mysqld内部发生了什么,你应该用--log[=file_name]或-l [file_name]选项启动它。

如果没有给定file_name的值, 默认名是host_name.log。
所有连接和语句被记录到日志文件。当你怀疑在客户端发生了错误并想确切地知道该客户端发送给mysqld的语句时,该日志可能非常有用。

mysqld按照它接收的顺序记录语句到查询日志,这可能与执行的顺序不同。
这与更新日志和二进制日志不同,它们在查询执行后,但是任何一个锁释放之前记录日志(查询日志还包含所有语句,而二进制日志不包含只查询数据的语句)。

4、【mysql二进制日志 Binlog】---记录所有更改数据的语句,还用于复制
二进制日志包含了所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句。
语句以“事件”的形式保存,它描述数据更改。

mysql二进制日志还包含关于每个更新数据库的语句的执行时间信息。

当用--log-bin[=file_name]选项启动时,mysqld写入包含所有更新数据的SQL命令的日志文件。
如果未给出file_name值, 默认名为-bin后面所跟的主机名。如果给出了文件名,但没有包含路径,则文件被写入数据目录。建议指定一个文件名

如果在日志名中提供了扩展名(例如,--log-bin=file_name.extension),则扩展名被悄悄除掉并忽略。

mysqld在每个二进制日志名后面添加一个数字扩展名。
每次启动服务器或刷新日志时该数字则增加。

如果当前的日志大小达到max_binlog_size,还会自动创建新的二进制日志。

如果正使用大的事务,二进制日志还会超过max_binlog_size:
事务全写入一个二进制日志中,绝对不要写入不同的二进制日志中。

为了能够知道还使用了哪个不同的二进制日志文件,mysqld还创建一个二进制日志索引文件,包含所有使用的二进制日志文件的文件名。

默认情况下与二进制日志文件的文件名相同,扩展名为'.index'。

可以用--log-bin-index[=file_name]选项更改二进制日志索引文件的文件名。
当mysqld在运行时,不应手动编辑该文件;
如果这样做将会使mysqld变得混乱。

可以用RESET MASTER语句删除所有二进制日志文件,或用PURGE MASTER LOGS只删除部分二进制文件。
使用mysql的主备复制时,与主库的binlog对应的备库上还会生成
 

中继日志文件:relay_log[=file_name]、
中继日志索引文件:relay-log-index [=file_name]  


              
当前主库的binlog位置信息文件:master-info-file[=file_name]                               
当前备库上执行到的中继日志位置信息文件:relay-log-info-file[=file_name]  

注:有了二进制日志和中继日志之后,备库开启log-slave-updates = 1  才能搭建M-M架构

官方文档:
http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html#log-files