根据我的理解,当我们执行命令或查询时,Postgres 客户端会发送一条前端消息,然后以后端消息格式获取响应。
如何在 Linux 机器上捕获和检查这些消息?
例如,假设我正在通过psql
客户端执行以下命令
psql --username=foo --dbname=mydb --password=foobar
我相信客户会创建StartupMessage。
有没有办法追踪这种互动?考虑到服务器和客户端在同一台机器上运行。
根据我的理解,当我们执行命令或查询时,Postgres 客户端会发送一条前端消息,然后以后端消息格式获取响应。
如何在 Linux 机器上捕获和检查这些消息?
例如,假设我正在通过psql
客户端执行以下命令
psql --username=foo --dbname=mydb --password=foobar
我相信客户会创建StartupMessage。
有没有办法追踪这种互动?考虑到服务器和客户端在同一台机器上运行。
我倾向于使用 Wireshark,它理解和解释 PostgreSQL 协议。
我只是
strace -s4096
psql 程序(因为这比跟踪后端更容易)并将消息从 strace 输出中提取出来。要查找的相关文件句柄通常是 3,但我认为情况并非总是如此。