我正在尝试编写一些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中 return Connection(* args,** kwargs) 文件“C:\ Python27 \ lib \ site-packages \ MySQLdb \ connections.py”,第187行,在中 它 super(Connection,self)。 init (* args,** kwargs2) _mysql_exceptions.OperationalError:(2003,“无法在'12上连接到MySQL服务器 7.0.0.1'(10061)“)
答案 0 :(得分:0)
您在连接对象中使用的IP地址“127.0.0.1”是指 localhost ,它是运行程序的计算机。您无法远程连接到另一台计算机的本地主机。您需要使用远程服务器的IP地址替换主机IP地址。
如果连接正确,你应该只需要 MySQLdb.connect 对象,而不是ssh对象。