【发布时间】:2013-06-15 07:38:43
【问题描述】:
我正在尝试编写一些 python 代码来建立与远程服务器的 ssh 连接,然后执行一些 MYSQL 查询(为简单起见,我在示例中省略了这些)。据我所知,ssh 正在工作,但我似乎无法进入数据库。有人可以帮忙吗?
import MySQLdb
import decimal
import operator
import os
import paramiko
mykey = paramiko.RSAKey.from_private_key_file("C:/Users/Desktop/keyname.pem")
ssh = paramiko.SSHClient()
ssh.load_system_host_keys()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('ec2-blah-blah.compute.amazonaws.com', username='ec2-user', pkey = mykey)
conn = MySQLdb.connect(
host="127.0.0.1",
port = 3306,
user="root",
passwd="password",
db="MyDB")
我得到的错误是:
文件“C:\Python27\lib\site-packages\MySQLdb__init__.py”,第 81 行,在 Connect 返回连接(*args,**kwargs) 文件“C:\Python27\lib\site-packages\MySQLdb\connections.py”,第 187 行,在 in 它 super(Connection, self).init(*args, **kwargs2) _mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on '12 7.0.0.1' (10061)")
【问题讨论】:
-
你不能那样做。您正在做的是打开与远程计算机的 SSH 连接,然后尝试访问本地 MySQL 服务器,您没有访问远程 MySQL 服务器
-
您似乎正在尝试创建 ssh 隧道。但你需要先检查 paramiko 关于隧道的能力。