我试图使用python2.7中的pymysql
和sshtunnel
来隧道连接,这样我就可以连接到只能通过bastion服务器访问的mysql实例。bastion服务器的主机名为BASTIONIP
,该服务器可以毫无问题地连接到MYSQLHOST
。然而,python似乎无法通过隧道进行连接。以下是我的代码:
with sshtunnel.SSHTunnelForwarder(
(BASTIONIP, 22),
ssh_username='dataengineer',
ssh_pkey="/Users/USERNAME/.ssh/id_rsa",
remote_bind_address=(MYSQLHOST, 3306),
local_bind_address=(MYSQLHOST, 3306)
) as tunnel:
self.DB = {'con': pymysql.connect(host=MYSQLHOST,
user=USERNAME,
passwd=PASSWORD,
db=DBNAME,
port=tunnel.local_bind_port,
charset='utf8',
autocommit=True)}
self.DB['cursor'] = self.DB['con'].cursor(pymysql.cursors.DictCursor)
但是,当我尝试连接时,我收到以下错误:
^{pr2}$谁能指出我做错了什么吗?在
很有魅力。在
以下是我在谷歌上搜索后发现的可能原因:
尝试以根
/etc/hosts
文件的形式打开,并添加一行如下所示这个名字应该能解决。 用您的ip地址更新
192.168.1.1
。 Herelocal_if = socket.gethostbyname_ex(socket.gethostname())[-1]
与
^{pr2}$Here
相关问题 更多 >
编程相关推荐