pymysql 怎么连接需要通过 ssh 跳转的数据库呢
2019-01-21 本文已影响0人
cokeonemore
本地无法连接mysql
,必须连到服务器上才能访问到msyql
,gui工具一般都支持,python的话需要用到sshtunnel
库。
代码如下:
import pymysql
from sshtunnel import SSHTunnelForwarder
def onlinemysql(sql_select):
"""使用pymysql模块通过SSHTunnelForwarder隧道连接mysql"""
with SSHTunnelForwarder(
('跳板机服务器地址' , '跳板机port'), # B机器的配置
ssh_password='跳板机密码',
ssh_username='跳板机用户名',
remote_bind_address=('数据库服务器地址' , '数据库port')) as server: # A机器的配置
db = pymysql.connect(host='127.0.0.1', # 此处必须是是127.0.0.1
port=server.local_bind_port,
user='数据库服务器用户名',
passwd='数据库服务器密码',
charset = 'utf8',
db='待连接数据库名')
# 使用 cursor() 方法创建一个游标对象 cursor
# 设置游标类型,默认游标类型为元祖形式
# 将游标类型设置为字典形式
cursor = db.cursor(cursor=pymysql.cursors.DictCursor)
# 使用 execute() 方法执行 SQL 查询
cursor.execute(sql_select)
db.commit()
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print("通过mysql查询到的数据 : %s " % data)
# 关闭数据库连接
db.close()
return data