《mysql 主從 binlog_format 設置關系》要點:
本文介紹了mysql 主從 binlog_format 設置關系,希望對您有用。如果有疑問,可以聯系我們。
導讀:1. 主庫是row,從庫必須是row/mixed.如果是statement,主庫有變更時,從庫報如下錯誤(無論什么變更都報錯,如insert/update/delete/alte...
1. 主庫是row,從庫必須是row/mixed.如果是statement,主庫有變更時,從庫報如下錯誤(無論什么變更都報錯,如insert/update/delete/alter等):
??? Last_Error: Error executing row event: 'Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT.'
2. 主庫是statement,從庫可以是任意模式(statement/mixed/row),但可能造成數據不一致,故不建議使用.
3. 主庫是mixed,從庫必須是row/mixe格式.如果從庫是statement,主庫一般情況下修改數據,從庫不報錯.特殊情況下,則從庫報如下錯誤.
??? Last_Error: Error executing row event: 'Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT.'
以上所說的一般情況是:主庫將binlog記錄為statement格式.
以上所說的特殊情況是:主庫將binlog記錄為row格式.具體為以下幾種:
(1) 當時用UUID()函數時
(2) 當一個或多個擁有AUTO_INCREMENT列的表被更新同時有‘trigger’或者‘stored function’被調用時
(3) 執行INSERT DELAYED時
(4) 當視圖里的某一部分需要row-based復制(例如UUID())時,創建該視圖的語句被改為row-based
(5) 使用用戶自定義函數(UDF)時
(6) 當某語句被判定為row-based,并且執行它的session需要用到臨時表,則session下的所有子語句都將以ROW格式記錄
(7) 當使用USER(),CURRENT_USER()或者 CURRENT_USER
(8) 當語句引用了一個或多個system variables.
(9) 當使用LOAD_FILE()
mysql將mixed記錄為row的幾種情況,請參考官方文檔:
https://dev.mysql.com/doc/refman/5.7/en/binary-log-mixed.html
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/5535.html