php一步一步实现mysql协议(一)——抓包本地mysql通信

时间:2022-07-25
本文章向大家介绍php一步一步实现mysql协议(一)——抓包本地mysql通信,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

原由

  最近研究数据库中间件的时候,发现项目中连接中间件的时候和配置数据库一样。说明中间件必然实现了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协议包数据