使用mysqlsniffer捕獲SQL語句
MySQL5.1之前general log不能在執行時啟用或禁用,有時想捕捉SQL來查詢問題就很麻煩,偶然間發現一個很不錯的小工具:mysqlsniffer,可以用來捕捉SQL語句,使用幫助如下:
mysqlsniffer --help
mysqlsniffer v1.2 - Watch MySQL traffic on a TCP/IP network
Usage: mysqlsniffer [OPTIONS] INTERFACE
OPTIONS:
--port N Listen for MySQL on port number N (default 3306)
--verbose Show extra packet information
--tcp-ctrl Show TCP control packets (SYN, FIN, RST, ACK)
--net-hdrs Show major IP and TCP header values
--no-mysql-hdrs Do not show MySQL header (packet ID and length)
--state Show state
--v40 MySQL server is version 4.0
--dump Dump all packets in hex
--help Print this
Original source code and more information at:
INTERFACE是指網路卡號,如eth0,eth1,lo等。
當然也有人直接tcpdump來捕捉的,方法如下:[@more@]
mysqlsniffer --help
mysqlsniffer v1.2 - Watch MySQL traffic on a TCP/IP network
Usage: mysqlsniffer [OPTIONS] INTERFACE
OPTIONS:
--port N Listen for MySQL on port number N (default 3306)
--verbose Show extra packet information
--tcp-ctrl Show TCP control packets (SYN, FIN, RST, ACK)
--net-hdrs Show major IP and TCP header values
--no-mysql-hdrs Do not show MySQL header (packet ID and length)
--state Show state
--v40 MySQL server is version 4.0
--dump Dump all packets in hex
--help Print this
Original source code and more information at:
INTERFACE是指網路卡號,如eth0,eth1,lo等。
當然也有人直接tcpdump來捕捉的,方法如下:[@more@]
tcpdump -i eth1 -s 0 -l -w - dst port 3306 | strings | perl -e '
while(<>) { chomp; next if /^[^ ]+[ ]*$/;
if(/^(SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER)/i) {
if (defined $q) { print "$qn"; }
$q=$_;
} else {
$_ =~ s/^[ t]+//; $q.=" $_";
}
}'
while(<>) { chomp; next if /^[^ ]+[ ]*$/;
if(/^(SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER)/i) {
if (defined $q) { print "$qn"; }
$q=$_;
} else {
$_ =~ s/^[ t]+//; $q.=" $_";
}
}'
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/124805/viewspace-1026435/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- unix 系統捕獲sql語句和手工調整AWR的設定SQL
- 關於高效捕獲資料庫非繫結變數的SQL語句資料庫變數SQL
- 【Mysql】捕獲線上sqlMySql
- 使用SQL語句獲取SQLite中的表定義SQLite
- sql 中的with 語句使用SQL
- Laravel 獲取執行的sql語句LaravelSQL
- 觸發器中獲取SQL語句觸發器SQL
- 【實驗】【SQL_TRACE】使用sql_trace功能獲得show parameter的sql語句SQL
- 使用sql語句查詢平均值,使用sql語句查詢資料總條數, not in 篩選語句的使用SQL
- 使用sql語句分析雙色球SQL
- SQL語句使用總結(一)SQL
- SQL查詢語句使用 (轉)SQL
- 使用 EXPLAIN PLAN 獲取SQL語句執行計劃 (R0.1)AISQL
- SQL語句SQL
- Java中如何解析SQL語句、格式化SQL語句、生成SQL語句?JavaSQL
- 使用hint來調優sql語句SQL
- Fastapi sqlalchemy DBApi 直接使用sql語句ASTAPISQL
- 根據SQL Id獲得SQL語句的執行計劃SQL
- javascript捕獲組如何使用JavaScript
- 使用dbms_xplan包來獲得sql語句的執行計劃SQL
- 【SQL】Oracle SQL join on語句and和where使用區別SQLOracle
- sql語句大全SQL
- 共享SQL語句SQL
- SQL語句整理SQL
- SQL基本語句SQL
- 精妙Sql語句SQL
- SQL語句集合SQL
- oracle sql語句OracleSQL
- sql語句 求救!SQL
- SQL精妙語句SQL
- SQL語句收集SQL
- 常用SQL語句SQL
- sql常用語句SQL
- oracle之PLSql語言(二)sql語句的使用OracleSQL
- SQL Server 變更資料捕獲(CDC)SQLServer
- JavaScript事件捕獲冒泡與捕獲JavaScript事件
- 【SQL】10 SQL UPDATE 語句SQL
- 【SQL】11 SQL DELETE 語句SQLdelete