【发布时间】:2016-10-25 03:08:42
【问题描述】:
我正在尝试在 python 中通过 ssh 连接到 mysql db,但出现错误。我将以下内容保存在 python 文件“forward.py”中。我的代码如下:
forward.py
from sshtunnel import SSHTunnelForwarder
import MySQLdb
with SSHTunnelForwarder(
('ssh_host', 22),
ssh_password="ssh_password",
ssh_username="ssh_username",
remote_bind_address=('mysql_host', 3306)) as server:
con = MySQLdb.connect(user='mysql_username',passwd='mysql_password',db='mysql_db_name',host='mysql_host',port=server.local_bind_port)
当我在终端运行 forward.py 时,我收到以下错误:
_mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on
'mysql_host' (60)")
值得注意的是,这些值是硬编码的安全值,即“mysql_host”是一个实际的主机,我可以在运行时通过 ssh 访问它
ssh mysql_host
通过终端。我也可以使用具有相同值的 Sequel Pro 进行正常连接,如下所示:http://screencast.com/t/0niuWlMDb
谁能指出我正确的方向?提前致谢
【问题讨论】:
标签: python mysql ssh mysql-python