久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

mysql中如何設置binlog

149次閱讀
沒有評論

共計 3070 個字符,預計需要花費 8 分鐘才能閱讀完成。

這篇文章給大家分享的是有關 mysql 中如何設置 binlog_format=MIXED 的內容。丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,一起跟隨丸趣 TV 小編過來看看吧。

 binlog_format 有三種格式,STATEMENT、ROW 和 MIXED。statement 在二進制日志里,記錄的是實際的 SQL 語句,ROW 在二進制日志記錄的是實際行的變更。
  在二進制日志里,MIXED 默認還是采用 STATEMENT 格式記錄的,但在下面這 6 種情況下會轉化為 ROW 格式:
  第一種情況:DNB 引擎,表的 DML 操作會以 ROW 格式記錄。
  第二種情況:SQL 語句里包含了 UUID()函數。
  第三種情況:自增長字段被更新了。
  第四種情況:包含了 INSERT DELAYED 語句。
  第五種情況:使用了用戶定義函數 (UDF)。
  第六種情況:使用了臨時表。
  下邊看一個案例,主從都是 MySQL5.6,binlog_format 被設置為 MIXED 格式,看看會有什么樣的問題。
主庫:

點擊 (此處) 折疊或打開

mysql select * from test01;

+——+——–+

| id | name |

+——+——–+

| 1 | steven |

| 2 | steven |

| 3 | steven |

| 4 | steven |

| 5 | steven |

| 6 | steven |

+——+——–+

從庫:

點擊 (此處) 折疊或打開

mysql select * from test01;

+——+——–+

| id | name |

+——+——–+

| 1 | steven |

| 2 | steven |

| 3 | steven |

| 4 | steven |

| 5 | steven |

+——+——–+

在 master 上執行如下 SQL:

點擊 (此處) 折疊或打開

mysql update test01 set name= StevenBJ where id=6;

Query OK, 1 row affected (0.07 sec)

Rows matched: 1  Changed: 1  Warnings: 0

mysql select * from test01;

+——+———-+

| id | name |

+——+———-+

| 1 | steven |

| 2 | steven |

| 3 | steven |

| 4 | steven |

| 5 | steven |

| 6 | StevenBJ |

+——+———-+

  查看二進制日志沒有報錯,原因是采用的是 mixed 模式,但是默認采用的 statement 格式記錄。
  修改 binlog_format=row 之后,在 master 執行剛才的語句,然后在 master 查看二進制日志:
[root@mysql data]# mysqlbinlog –no-defaults mysql-bin.000004
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#170808 11:32:02 server id 1  end_log_pos 120 CRC32 0x078ce9f0 Start: binlog v 4, server v 5.6.36-log created 170808 11:32:02 at startup
# Warning: this binlog is either in use or was not closed properly.
ROLLBACK/*!*/;
BINLOG
sjCJWQ8BAAAAdAAAAHgAAAABAAQANS42LjM2LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACyMIlZEzgNAAgAEgAEBAQEEgAAXAAEGggAAAAICAgCAAAACgoKGRkAAfDp
jAc=
/*!*/;
# at 120
#170808 11:45:20 server id 1  end_log_pos 192 CRC32 0x736e3ccf Query thread_id=2 exec_time=1 error_code=0
SET TIMESTAMP=1502163920/*!*/;
SET @@session.pseudo_thread_id=2/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1075838976/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C latin1 *//*!*/;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=33/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
BEGIN
/*!*/;
# at 192
#170808 11:45:20 server id 1  end_log_pos 244 CRC32 0xda92178e Table_map: `test`.`test01` mapped to number 81
# at 244
#170808 11:45:20 server id 1  end_log_pos 310 CRC32 0x65485ceb Update_rows: table id 81 flags: STMT_END_F
BINLOG
0DOJWRMBAAAANAAAAPQAAAAAAFEAAAAAAAEABHRlc3QABnRlc3QwMQACAw8CHgADjheS2g==
0DOJWR8BAAAAQgAAADYBAAAAAFEAAAAAAAEAAgAC///8BgAAAAhTdGV2ZW5CSvwGAAAAClN0ZXZl
bkJlaWrrXEhl
/*!*/;
# at 310
#170808 11:45:20 server id 1  end_log_pos 341 CRC32 0xbeced65f Xid = 55
COMMIT/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
[root@mysql data]# date
Tue Aug  8 11:47:01 CST 2017

感謝各位的閱讀!關于“mysql 中如何設置 binlog_format=MIXED”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-27發表,共計3070字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 大关县| 荣昌县| 靖宇县| 蓬溪县| 大港区| 榆树市| 洮南市| 游戏| 内乡县| 双辽市| 大宁县| 彭山县| 曲松县| 大连市| 石河子市| 绍兴县| 德阳市| 西吉县| 育儿| 甘南县| 宝坻区| 丹东市| 长寿区| 上虞市| 江口县| 安义县| 瑞昌市| 信宜市| 江油市| 土默特左旗| 呼图壁县| 开平市| 长沙县| 荣昌县| 南江县| 城口县| 黄龙县| 高安市| 沁源县| 伊通| 澄迈县|