公网连接内网数据库(如云数据库)时,通常需要白名单;如果不是白名单IP,通常需要一个跳板机(类似代理)来连接内网数据库,
下方以mysql为例(其他数据库基本一致):
import pymysql as mysql
from sshtunnel import SSHTunnelForwarder
server=SSHTunnelForwarder((SSH.IP,SSH.PORT), #跳板机ip及端口
ssh_username=SSH.USERNAME, #跳板机账号
ssh_password=SSH.PASSWORD, #跳板机密码
remote_bind_address=(DATABASE.IP,DATABASE.PORT)) #目标数据库服务器ip、端口
server.start() #启动连接管道
conn = mysql.connect(
host=‘127.0.0.1‘, #此处必须是是127.0.0.1
port=server.local_bind_port, #api固定写法
user=DATABASE.USERNAME, #目标数据库账号
passwd=DATABASE.PASSWORD, #目标数据库密码
db=DATABASE NAME) #目标数据库名称
cur=conn.cursor() #获取数据库游标
sql="select * from fq_wealth_user where login_name=‘test888‘;"
cur.execute(sql) #执行sql
AllData=cur.fetchall() #获取所有执行sql的结果
print(AllData)
#conn.commit()
cur.close() #关闭游标
conn.close() #关闭数据库连接
原文地址:https://www.cnblogs.com/whitemouseV2-0/p/11316929.html