標籤:style io color ar os 使用 sp for 檔案
1 日誌分為三種格式
statement 基於語句的
row 基於行的
mixed 複合的
區別:
基於語句的 簡單,精悍,伺服器會將資料修改事件以SQL語句的形式寫入二進位,內容比較容易理解
語句行的 對要修改哪些資料 提供了跟精細的控制,但是不容易理解,出現這種格式的原因在於,有些語句可能不夠明確,在主伺服器和從伺服器上執行可能會出現不同的效果
基於mixed 伺服器會根據最適當的時候切換使用基於語句或者基於行的格式
2 如何查看當前系統的格式
mysql> show global variables like ‘%format%‘;
3 如何修改
暫時修改 當前會話或別的會話
mysql> set session binlog_format=‘mixed‘;
mysql> set global binlog_format=‘mixed‘;
重啟mysqld 就不生效了
永久生效
寫入my.cnf 的設定檔當中
binlog_format=
4 示範的不同格式效果
[[email protected] logs]# mysqlbinlog master_bin.000003 和 不斷set 修改 format_log
mysql> show binlog events in ‘master_bin.000003‘; 簡便的查看每個pos期間執行的操作內容
基於statement 語句的
# at 781
#141116 22:40:42 server id 100 end_log_pos 897 CRC32 0x63842d06 Query thread_id=3 exec_time=0 error_code=0
SET TIMESTAMP=1416148842/*!*/;
insert student (id,name) values (1,‘andy‘)
/*!*/;
| master_bin.000003 | 781 | Query | 100 | 897 | use `mydb`; insert student (id,name) values (1,‘andy‘)
基於row的
# at 1254
#141116 22:43:38 server id 100 end_log_pos 1303 CRC32 0x115dc0d4 Write_rows: table id 70 flags: STMT_END_F
BINLOG ‘
GrhoVBNkAAAANQAAAOYEAAAAAEYAAAAAAAEABG15ZGIAB3N0dWRlbnQAAgP+Av4UA9TLV8c=
GrhoVB5kAAAAMQAAABcFAAAAAEYAAAAAAAEAAgAC//wCAAAACGN1aWRlaHVh1MBdEQ==
其實這條執行的操作也是一個insert 語句但是 我們無法閱讀
| master_bin.000003 | 1254 | Write_rows | 100 | 1303 | table_id: 70 flags: STMT_END_F
基於mixed的 這裡它自動選擇了合適的 statement 基於語句的
| master_bin.000003 | 1492 | Query | 100 | 1615 | use `mydb`; insert student (id,name) values (4,‘zhangxueyou‘)
mysql的日誌格式分日誌分析