公网连接内网数据库(如云数据库)时,通常需要白名单;如果不是白名单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()                #关闭数据库连接

 

相关文章:

  • 2021-06-21
  • 2021-06-30
  • 2021-11-10
  • 2021-05-21
  • 2021-08-17
  • 2022-12-23
  • 2021-07-08
猜你喜欢
  • 2021-06-08
  • 2021-06-22
  • 2022-01-06
  • 2021-12-19
  • 2021-11-26
  • 2021-10-30
相关资源
相似解决方案