mysql binlog日志查詢不出語句問題及解決
mysql binlog日志查詢不出語句
當(dāng)bin-log的模式設(shè)置為 row時
不僅日志長得快 并且查看執(zhí)行的sql時 也稍微麻煩一點:
1.干擾語句多
2.生成sql的編碼需要解碼
binlog_format=row
直接mysqlbinlog出來的 文件
執(zhí)行sql部分的sql顯示為base64編碼格式
固生成sql記錄的時候 不能用常規(guī)的辦法去生成 需要加上相應(yīng)的參數(shù)才能顯示出sql語句
--base64-output=decode-rows -v
例如:
/opt/MySQL/bin/mysqlbinlog --base64-output=decode-rows -v --start-date='2014-09-16 14:00:00' --stop-date='2014-09-16 14:20:00' /opt/mysql/log/mysql-bin.000017 >/opt/mysql_bak/mysqlbinlogsql_restore_2014091614.sql
mysql的binlog日志
查看和配置binlog
1、log_bin 是否開啟binlog,指定日志文件路徑
2、log_bin_basename 和 log_bin_index 日志文件基礎(chǔ)名和索引名(*好像不能用來設(shè)置只是展示作用,我設(shè)置時時會報錯無法啟動服務(wù))
3、binlog_format 日志格式
4、binlog_error_action 設(shè)置當(dāng)binlog日志數(shù)據(jù)一致性遭到破壞或者復(fù)制操作停止時,服務(wù)器要做什么操作。有兩個選項ABORT_SERVER 服務(wù)關(guān)閉(默認值), IGNORE_ERROR 忽略錯誤。
操作binglog日志的常用命令
1、show master logs; 或者 show binary logs; 查看所有binlog日志列表。
2、show master status; 查看master狀態(tài)。
- File 最新的一個binlog日志的編號名稱
- Position 最后一個操作事件pos結(jié)束點的值
3、flush logs; 刷新log日志文件,從當(dāng)前時間開始產(chǎn)生一個新編號的binlog日志文件。
******每當(dāng)mysqld服務(wù)重啟時,會自動執(zhí)行此命令,刷新binlog日志;在mysqldump備份數(shù)據(jù)時加 -F 選項也會刷新binlog日志;
4、reset master; 清空所有binlog日志
使用mysql自帶的mysqlbinlog命令和grep命令 查看binlog
1、mysqlbinlog 【參數(shù) 】 【binlog文件】
- -d, --database=name 僅顯示指定數(shù)據(jù)庫的轉(zhuǎn)儲內(nèi)容。
- -o, --offset=# 跳過前N行的日志條目。
- -r, --result-file=name 將輸入的文本格式的文件轉(zhuǎn)儲到指定的文件。
- -s, --short-form 使用簡單格式。
- --set-charset=name 在轉(zhuǎn)儲文件的開頭增加'SET NAMES character_set'語句。
- --start-datetime=name 日志的起始時間。
- --stop-datetime=name 日志的截止時間。
- -j, --start-position=# 日志的起始位置。
- --stop-position=# 日志的截止位置。
- --base64-outputbinlog 輸出語句的base64解碼
分為三類:
默認是值auto ,僅打印base64編碼的需要的信息,如row-based 事件和事件的描述信息。
- never 僅適用于不是row-based的事件
- decode-rows 配合--verbose選項一起使用解碼行事件到帶注釋的偽SQL語句
- -v,--verbose :顯示statement模式帶來的sql語句
***解析mixed格式binlog需要使用 --base64-output=DECODE-ROWS --verbose或--base64-output=DECODE-ROWS -v 來解析
2、grep '【關(guān)鍵字】' 【參數(shù)】
grep是一個強大的文本搜索工具命令,用于查找文件中符合指定格式的字符串,支持正則表達式。
grep命令常用參數(shù)說明
- -A 除了顯示符合條件的那一行之外,并顯示該列之后的指定行的內(nèi)容內(nèi)容。
- -B 除了顯示符合條件的那一行之外,并顯示該列之前的指定行的內(nèi)容內(nèi)容。
- -c 計算符合結(jié)果的行數(shù)。
- -i 忽略字符大小寫
- -v 反向查找
- -e 按指定字符串查找
- -E 按指定字符串指定的正則查找
- -n 在顯示符合條件的那一行前,標識出該行的行數(shù)標號。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL中配置文件my.cnf因權(quán)限問題導(dǎo)致無法啟動的解決方法
這篇文章主要給大家介紹了關(guān)于MySQL中配置文件my.cnf因權(quán)限問題導(dǎo)致無法啟動的解決方法,該無法啟動的錯誤提示代碼是:World-writable config file '/etc/my.cnf' is ignored,文中給出了詳細的解決方法,需要的朋友們下面來一起看看吧。2017-06-06MySQL查詢表中重復(fù)數(shù)據(jù)的實現(xiàn)
在數(shù)據(jù)庫中,我們經(jīng)常需要查詢重復(fù)字段來確保數(shù)據(jù)的準確性,如果數(shù)據(jù)中有重復(fù)字段,則可能會導(dǎo)致查詢結(jié)果錯誤,本文就想詳細的介紹了MySQL查詢表中重復(fù)數(shù)據(jù),感興趣的可以了解一下2023-08-08Mysql數(shù)據(jù)庫使用concat函數(shù)執(zhí)行SQL注入查詢
這篇文章主要介紹了Mysql數(shù)據(jù)庫使用concat函數(shù)執(zhí)行SQL注入查詢,concat函數(shù)在SQL注入查詢中會有意想不到的作用,本文就起講解它的使用,需要的朋友可以參考下2015-04-04