gpt4 book ai didi

Python 使用 SSHTunnelForwarder 和 MySQLdb 连接到 MySQL 服务器

转载 作者:行者123 更新时间:2023-12-01 03:53:01 25 4
gpt4 key购买 nike

我试图了解我应该做什么才能使用 SSH 连接到远程 MySQL 服务器。

    from sshtunnel import SSHTunnelForwarder

with SSHTunnelForwarder(
('192.168.0.60', 22),
ssh_password="MySSHPASSWORD",
ssh_username="MUSSHUserName",
remote_bind_address=('192.168.0.30', 3306)) as server:

conn = MySQLdb.connect(user='UserNameOnSQLSERVER', passwd='PasswordOnSQLSERVER', host='192.168.0.60', db='myDB',
port=server.local_bind_port)

我已经能够使用上述配置连接到该服务器,抛出 MySQL Workbench 并运行查询,一切都运行良好

问题是,当我尝试通过上述代码连接此数据库时,我不断收到错误:

_mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on '192.168.0.60' (10060)")

我还尝试将 MySQLdb.connect 中的 IP 更改为

        conn = MySQLdb.connect(user='kiboUser', passwd='Lb24@db30#kL68', host='192.168.0.60', db='dbKiboDashboard',
port=server.local_bind_port)

我收到以下错误:

_mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on '192.168.0.30' (10060)")

请有人帮助我理解我做错了什么

谢谢

最佳答案

remote_bind_address 是您要通过隧道进入的地址。确保验证正在监听的服务器的 TCP 端口。要验证这一点,您可以尝试命令

netstat

netstat -tln

这应该有效:

with SSHTunnelForwarder(
('ServerIP', sshport), #The server's IP and SSH port
ssh_password="MySSHPASSWORD",
ssh_username="MUSSHUserName",
remote_bind_address=('127.0.0.1', 3306)) as server: #The server's TCP IP and port, you're tunneling

conn = MySQLdb.connect(user='UserNameOnSQLSERVER', passwd='PasswordOnSQLSERVER', host='127.0.0.1',
port=server.local_bind_port) #Your TCP IP and port (your end of the tunnel)

关于Python 使用 SSHTunnelForwarder 和 MySQLdb 连接到 MySQL 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37942327/

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