我在Linux上运行PostgreSQL 5.5。我试图监控主设备和从设备之间与PostgreSQL相关的所有流量。为此,我使用Wireshark来监控流量。然后,我启动PostgreSQL并运行各种查询。在这些查询期间,我在主设备上运行Wireshark,只是为了捕获主设备和从设备之间的流量。
但使用Wireshark捕获的PostgreSQL流量有一个问题。所有流量都是以TCP数据包的形式发送/接收的,而且流量是编码的。我无法读取这些数据。请参见下图:
。
我想找出我在PostgreSQL数据库中插入的来自Wireshark的确切查询。查找PostgreSQL查询的最佳方法是什么?
另一方面,我在MySQL数据库上运行了相同的查询,并重复了上面提到的实验。我可以很容易地在Wireshark转储中读取所有这三个查询,因为它们不是编码形式的。请参见下图:
在图片的最后,显示了我在MySQL中插入的确切查询,但是我不能在PostgreSQL中读取相同的查询(参见第一张图片)。
我需要从Wireshark文件中找出上述查询。
关于文件:
- 192.168.50.11 is the source machine from where I inserted queries to remote PostgreSQL's master server
- 192.168.50.12 is the IP of master's server
- 192.168.50.13 is the slave's IP address
查询从.11执行,插入到.12,然后使用主从方法复制到.13。
1条答案
按热度按时间pgvzfuti1#
解决我自己的问题:
我的问题解决了。
I used Python code to insert queries into remote PostgreSQL database. I used following line in PostgreSQL to connect with database.***con = psycopg2.connect(host="192.168.50.12", database="postgres", user="postgres", password="faban")***If you use above approach then all the data will be sent in encrypted form. If you use the approach given below in python code then all the data will be sent in decrypted form. You can easily read all queries in Wireshark.***con = psycopg2.connect("host=192.168.50.12 dbname=postgres user=postgres password=faban sslmode=disable")***Same is the case in C-Code as well. Decrypted data***sprintf(conninfo, "dbname=postgres hostaddr=192.168.50.12 user=postgres password=faban sslmode=disable");Encrypted Data***sprintf(conninfo, "dbname=postgres hostaddr=192.168.50.12 user=postgres password=faban");