gpt4 book ai didi

python - 在 Windows 上使用 Python 通过 ssh 连接到数据库时出错

转载 作者:太空宇宙 更新时间:2023-11-03 21:23:49 25 4
gpt4 key购买 nike

我有一段代码,允许我通过 Python 中的 ssh 连接到我的 psql 数据库。它在 Ubuntu 18.10(通过 VirtualBox)上完美运行,但每次在 Windows 上都会失败,并出现无法到达远程主机和端口的错误。

我正在开发一个用户界面,可以从远程数据库(日志等)查询数据并将其可视化。

所有开发都是在 Ubuntu 18.10 上使用 Spyder3 完成的。在我尝试在 Windows 10 上执行相同的代码之前,我从未遇到过问题。

我尝试 Telnet 到 localhost:port 和远程主机:port(通过 ssh)并且它有效。在 stackoverflow 和其他地方查找了所有可能的答案后,我仍然无法解决该问题。事实上,它在一个环境上工作,而在同一台机器上的另一个环境上不起作用,这告诉我这是某种环境设置,但我不知道它可能是什么。

代码:

import psycopg2
import logging
logging.basicConfig(level=logging.DEBUG)

from sshtunnel import SSHTunnelForwarder

PORT = 5432
REMOTE_HOST = '111.222.111.222'
REMOTE_SSH_PORT = 22
curs = None
conn = None


server = SSHTunnelForwarder((REMOTE_HOST, REMOTE_SSH_PORT),
ssh_username='username',
ssh_password='password',
remote_bind_address=('localhost', PORT),
local_bind_address=('localhost', PORT))

server.start()
conn = psycopg2.connect(database='db_name', user='db_username', password='db_password', host='127.0.0.1', port='5432')
curs = conn.cursor()

预计:成功连接ssh,随后成功登录数据库。这可以通过同一台计算机上的 VirtualBox 在 Ubuntu 18.10 上运行。

实际结果:2019-01-02 10:54:51,489 错误设置 SSH 转发器时出现问题:无法打开隧道 localhost:5432 <> localhost:5432 可能正在使用或目标无法访问

最佳答案

我意识到我的本地 postgres (psql) 服务正在干扰端口映射,因为它也使用端口 5432。一旦我禁用该服务,它就会像魅力一样工作。

关于python - 在 Windows 上使用 Python 通过 ssh 连接到数据库时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54004429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com