python3远程连接_从python3.4连接到远程MySQL数据库

我试图使用python3.4同时连接到两个MySQL数据库(一个本地数据库,一个远程数据库),但我真的很挣扎。把问题分成三个部分:第一步:连接到本地数据库。这个很好用

使用PyMySQL。(MySQLdb与python3.4,of

当然。)

第2步:连接到远程数据库(需要

使用SSH)。我可以在Linux命令提示符下运行它,但不能

从Python。。。见下文。在

第3步:在

同一时间。我想我应该用另一个端口

远程数据库以便我可以同时拥有两个连接

但我在这里已经力不从心了!如果这是相关的,那么两个DBs将

有不同的名字。如果这个问题不是直接相关的,

请告诉我,我会分开邮寄的。在

不幸的是,对于新手来说,我开始的地方不太合适。。。一旦我能让这个工作起来,我可以很高兴地回到基本的Python和SQL,但希望有人会同情我,并帮助我开始!在

对于第2步,我的代码如下。它似乎非常接近回答这个问题的sshtunnel示例,尽管它使用MySQLdb。目前我正在嵌入连接参数-一旦它正常工作,我将把它们移到配置文件中。在import dropbox, pymysql, shlex, shutil, subprocess

from sshtunnel import SSHTunnelForwarder

import iot_config as cfg

def CloseLocalDB():

localcur.close()

localdb.close()

def CloseRemoteDB():

# Disconnect from the database

# remotecur.close()

# remotedb.close()

# Close the SSH tunnel

# ssh.close()

print("end of CloseRemoteDB function")

def OpenLocalDB():

global localcur, localdb

localdb = pymysql.connect(host=cfg.localdbconn['host'], user=cfg.localdbconn['user'], passwd=cfg.localdbconn['passwd'], db=cfg.localdbconn['db'])

localcur = localdb.cursor()

def OpenRemoteDB():

global remotecur, remotedb

with SSHTunnelForwarder(

('my_remote_site', 22),

ssh_username = "my_ssh_username",

ssh_private_key = "/etc/ssh/my_private_key.ppk",

ssh_private_key_password = "my_private_key_password",

remote_bind_address = ('127.0.0.1', 3308)) as server:

remotedb = None

#Following line gives an error if uncommented

# remotedb = pymysql.connect(host='127.0.0.1', user='remote_db_user', passwd='remote_db_password', db='remote_db_name', port=server.local_bind_port)

#remotecur = remotedb.cursor()

# Main program starts here

OpenLocalDB()

CloseLocalDB()

OpenRemoteDB()

CloseRemoteDB()

这是我得到的错误:

^{pr2}$

提前谢谢。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值