当前位置:Gxlcms > 数据库问题 > MySQL二进制日志功能介绍

MySQL二进制日志功能介绍

时间:2021-07-01 10:21:17 帮助过:23人阅读

  • 2 use test/*!*/;  
  • 3 SET TIMESTAMP=1247476808/*!*/;  
  • 4 SET @@session.pseudo_thread_id=1/*!*/;  
  • 5 SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1,  
  • @@session.unique_checks=1, @@session.autocommit=1/*!*/;  
  • 6 SET @@session.sql_mode=0/*!*/;  
  • 7 SET @@session.auto_increment_increment=1,  
  • @@session.auto_increment_offset=1/*!*/;  
  • 8 /*!\C latin1 *//*!*/;  
  • 9 SET @@session.character_set_client=8,  
  • @@session.collation_connection=8,@@session.collation_server=8/*!*/;  
  • 10 SET @@session.lc_time_names=0/*!*/;  
  • 11 SET @@session.collation_database=DEFAULT/*!*/;  
  • 12 insert into t values (‘12345‘)  
  • 13 /*!*/;  
  • 14 # at 199  
  • ... 
  • 从第1~14行记录了一条对数据库更改操作的SQL语句(第12行):insert into t values (‘12345‘)。第1行记录内容如表11-6所示。

    表11-6  记录内容说明

    技术分享

    日志的第2行表示切换到MySQL服务器的test数据库。第3~11行设置当前会话的一些环境变量,例如是否自动提交(session.autocommit)、是否检查外键约束(session.foreign_key_ checks)等。如果需要了解它们详细的参数和说明,可以参考MySQL使用手册的第5章第1小节。

    日志第12行为该条记录的核心,即对数据库进行了更改操作的SQL语句(insert into t values (‘12345‘))。日志第14行表示该条日志记录的结束。

    以上分析了MySQL二进制日志如何记录一条对数据库进行更改的SQL语句,对于其他SQL语句的记录格式与上面的类似。

    前面提到,每次MySQL启动时,日志文件顺序会自动加1。例如当前二进制日志文件名为:jason2-bin.000001,停止并重启动MySQL后,二进制日志文件名为jason2-bin.000002,新的更改数据库的操作将被记录到新的文件中。旧的二进制日志文件用于进行数据库的复制或者恢复。

    默认情况下,在数据库目录下还有一个索引文件用来记录已经使用的二进制日志文件的名字,该索引文件的名字为"hostname-bin.index"。下面是索引文件的内容:

    1. jason@jason2:~/mysql-bin/var> more jason2-bin.index  
    2. ./jason2-bin.000001  
    3. ./jason2-bin.000002 

    索引文件最后一行表示当前正在使用的二进制日志名字。

    MySQL二进制日志功能介绍

    标签:efault   mysql服务器   记录   base   切换   参数   amp   session   服务器   

    人气教程排行