mysql中如何設置binlog_format=MIXED

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

創(chuàng)新互聯(lián)專注于順德網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供順德營銷型網(wǎng)站建設,順德網(wǎng)站制作、順德網(wǎng)頁設計、順德網(wǎng)站官網(wǎng)定制、成都小程序開發(fā)服務,打造順德網(wǎng)絡公司原創(chuàng)品牌,更為您提供順德網(wǎng)站排名全網(wǎng)營銷落地服務。

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

點擊(此處)折疊或打開

  1. mysql> select * from test01;

  2. +------+--------+

  3. | id | name |

  4. +------+--------+

  5. | 1 | steven |

  6. | 2 | steven |

  7. | 3 | steven |

  8. | 4 | steven |

  9. | 5 | steven |

  10. | 6 | steven |

  11. +------+--------+

從庫:

點擊(此處)折疊或打開

  1. mysql> select * from test01;

  2. +------+--------+

  3. | id | name |

  4. +------+--------+

  5. | 1 | steven |

  6. | 2 | steven |

  7. | 3 | steven |

  8. | 4 | steven |

  9. | 5 | steven |

  10. +------+--------+

在master上執(zhí)行如下SQL:

點擊(此處)折疊或打開

  1. mysql> update test01 set name='StevenBJ' where id=6;

  2. Query OK, 1 row affected (0.07 sec)

  3. Rows matched: 1  Changed: 1  Warnings: 0

  4. mysql> select * from test01;

  5. +------+----------+

  6. | id | name |

  7. +------+----------+

  8. | 1 | steven |

  9. | 2 | steven |

  10. | 3 | steven |

  11. | 4 | steven |

  12. | 5 | steven |

  13. | 6 | StevenBJ |

  14. +------+----------+

  查看二進制日志沒有報錯,原因是采用的是mixed模式,但是默認采用的statement格式記錄。
 修改binlog_format=row之后,在master執(zhí)行剛才的語句,然后在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”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

當前文章:mysql中如何設置binlog_format=MIXED
本文URL:http://bm7419.com/article30/pcgeso.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊虛擬主機、做網(wǎng)站小程序開發(fā)、品牌網(wǎng)站設計、

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站