原由
最近研究数据库中间件的时候,发现项目中连接中间件的时候和配置数据库一样。说明中间件必然实现了mysql协议,于是我就想研究研究mysql实现,并最终实现使用php来通TCP直连mysql
俗话说:“工欲善其事,必先利其器”,研究mysql协议,需要先把工具安装上。这里使用 wireshark 来抓包,安装 wireshark 很简单一直点击下一步就可以啦,但是注意在安装的时候把 npcap 安装上
然后选择 “Adapter for loopback traffic capture” 网卡
使用php连接数据库并执行脚本:
<?php
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'root';
$password = '123456';
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
$result = $dbh->query("select * from users",PDO::FETCH_ASSOC);
foreach($result as $row){
var_dump($row);
}
在抓取数据包界面筛选 mysql 协议,结果如图
好了到这里我们就抓取到了本机的mysql协议包数据