成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

dba+開源工具:8.0升級無障礙!基于MySQL協議的抓包工具

數據庫 MySQL
在進行MySQL 8.0升級時,了解新版本對SQL語法的改變和新增的功能是非常重要的。通過使用mysql_sniffer,DBA可以在升級之前對現有的SQL語句進行抓取和分析,以確保在新版本中能夠正常運行。

mysql_sniffer工具簡介

mysql_sniffer 是一個基于 MySQL 協議的抓包工具,用來實時抓取 MySQL 服務端的請求,并格式化輸出,輸出內容包括訪問時間、來源 IP、執行的SQL語句。

在進行MySQL 8.0升級時,了解新版本對SQL語法的改變和新增的功能是非常重要的。通過使用mysql_sniffer,DBA可以在升級之前對現有的SQL語句進行抓取和分析,以確保在新版本中能夠正常運行。

使用mysql_sniffer工具可以帶來以下幾點好處:

  • 對SQL語法的改變有更深入的了解:MySQL 8.0引入了一些新的SQL語法,也對一些舊的語法進行了修改或棄用。通過mysql_sniffer,DBA可以抓取并分析現有的SQL語句,以確定它們是否會受到這些改變的影響。
  • 發現并解決潛在的問題:如果在新版本中,某些SQL語句無法正常運行,那么通過mysql_sniffer,DBA可以提前發現這些問題,并在升級之前進行修復。

有一些已知SQL語法與MySQL 8.0不兼容,例如:

select NVL(id/0,'YES') from test.t1 where id = 1;
select user_id,sum(amount) from test.user group by user_id DESC limit 10;

第一條語句,NVL函數是MariaDB特有的,在MySQL 8.0中,要改成:

select IFNULL(id/0,'YES') from test.t1 where id = 1;

第二條語句,在MySQL 8.0中group by 字段 ASC/DESC 失效,要改成:

select user_id,sum(amount) from test.user group by user_id order by user_id DESC limit 10;

  • 那么,如何判斷業務上的未知SQL是否與MySQL 8.0兼容呢?
  • mysql_sniffer工具可以幫助你

介紹

usage: mysql_sniffer [-h] -p PORT [-t TABLES [TABLES ...]] [-l LOG] [-c] [-r RUNTIME] [-v]


MySQL packet sniffer


options:
  -h, --help            show this help message and exit
  -p PORT, --port PORT  MySQL server port
  -t TABLES [TABLES ...], --tables TABLES [TABLES ...]
                        Table names to capture
  -l LOG, --log LOG     Log file path
  -c, --console         Print log to console
  -r RUNTIME, --runtime RUNTIME
                        Runtime of packet sniffing in seconds
  -v, --version         show program's version number and exit

參數解釋

-p 指定端口,MySQL默認3306


-c 是把抓取到的SQL打印到終端


-t 指定具體的表名,例如只抓取t1,t2,t3這三張表, -t t1 t2 t3 (不支持正則表達式,請寫具體的表名)


-l 抓取的SQL保存在哪個文件里,不指定默認保存在mysql_packet.sql文件里


-r 抓取多長時間,單位秒

使用

hell> chmod 755 mysql_sniffer

在 MySQL 5.7 或者 MariaDB 機器上執行(SSH的ROOT權限)

shell> ./mysql_sniffer -p 3306

將會抓取60秒數據(-r 代表抓取的時間,單位秒),默認會把線上的SQL語句(select/insert/update/delete)存入mysql_packet.sql文件里。

圖片圖片

圖片圖片

抓取1-10分鐘數據,然后把mysql_packet.sql文件拷貝到MySQL 8.0測試環境里,然后執行下面的命令:

mysql -S /tmp/mysql_mysql8_1.sock yourDB < mysql_packet.sql > /dev/null

看報錯信息。沒有報錯,就代表SQL是兼容的。

注:請確保生產環境和測試環境的表結構一致,測試環境不需要任何數據。

測試

1) 假定 192.168.1.1 是 MySQL 5.7 / MariaDB,在該機器上運行./mysql_sniffer -p 3306 -c

2) 在 192.168.1.2 機器上運行sysbench,模擬出生產環境數據讀寫。

3) mysql_sniffer會實時打印出目前運行的SQL語句。

注:工具適用于 Centos6 和 Centos7 系統。

  • mysql_sniffer(Centos7)
  • mysql_sniffer_centos6(Centos6)

工具研發者介紹

賀春旸,dbaplus社群金牌專家,凡普金科和愛錢進DBA團隊負責人,《MySQL管理之道:性能調優、高可用與監控》第一&二版、《MySQL運維進階指南》作者,曾任職于中國移動飛信、安卓機鋒網。五次榮獲dbaplus年度MVP,致力于MariaDB、MongoDB等開源技術的研究,主要負責數據庫性能調優、監控和架構設計。

工具下載:https://github.com/hcymysql/mysql_sniffer

責任編輯:武曉燕 來源: dbaplus社群
相關推薦

2023-06-27 07:29:30

dba+開源工具Binlog

2020-07-31 13:55:57

MySQL數據庫DBA

2023-08-29 07:22:06

MySQL數據工具故障恢復

2022-02-13 17:04:07

Wordle開源互聯網

2020-05-19 11:46:50

MongoDB圖形開源

2009-06-23 08:35:12

微軟Windows 7操作系統

2023-07-19 07:29:00

2023-01-28 07:52:49

2009-06-25 08:53:44

微軟Windows 7升級工具

2018-12-12 14:15:40

MongoDB熱備份工具數據庫

2023-10-17 07:51:37

MySQLQPS優化

2024-08-22 14:47:50

開源Linux網絡抓包工具

2020-11-19 10:15:56

tcpdump命令Linux

2023-08-11 07:20:04

開源工具項目

2017-05-24 08:49:35

Oracle數據庫Abrar Syed

2022-02-16 22:57:57

Mitmproxy抓包工具

2019-07-19 15:53:45

MySQL 5.7MySQL 8.0MySQL

2018-11-30 09:18:36

2021-01-05 06:12:38

Tcpdump工具網絡

2021-08-25 07:56:37

MySQLMyRocks存儲
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人精品国产 | 国产97色| 国产综合久久久久久鬼色 | 欧美看片 | 日韩成人专区 | 日韩精品久久久久久 | 亚洲成人精选 | 黄色免费在线观看 | 嫩呦国产一区二区三区av | 日韩精品一区二区三区视频播放 | 密室大逃脱第六季大神版在线观看 | 91精品国产综合久久精品图片 | 手机在线一区二区三区 | 999国产视频 | 精品久久一区 | 免费成人高清在线视频 | 日韩成人在线观看 | 99热都是精品 | 九九热精品免费 | 韩日一区二区三区 | 中文字幕在线剧情 | www.色婷婷 | 国产一区不卡 | 成人免费视频久久 | 在线观看国产网站 | 国产日韩久久久久69影院 | 激情91| 在线精品一区二区三区 | av第一页| 69亚洲精品| 射久久 | 欧美成人一区二区 | 国产高清视频 | 午夜影院黄 | 国产美女一区二区 | 国产网站在线免费观看 | 久久国产精品视频 | 国产精品日韩 | 91精品中文字幕一区二区三区 | 中文字幕第二十页 | 日日夜夜精品免费视频 |