Python代码建立一个ssh到远程服务器,然后连接到MYSQL

时间:2013-06-18 22:12:01

标签: python mysql ssh paramiko

我正在尝试编写一些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)“)

1 个答案:

答案 0 :(得分:0)

您在连接对象中使用的IP地址“127.0.0.1”是指 localhost ,它是运行程序的计算机。您无法远程连接到另一台计算机的本地主机。您需要使用远程服务器的IP地址替换主机IP地址。

如果连接正确,你应该只需要 MySQLdb.connect 对象,而不是ssh对象。