通过ssh管道连接内网数据库(mysql)

Posted whitemousev2-0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过ssh管道连接内网数据库(mysql)相关的知识,希望对你有一定的参考价值。

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

 

以上是关于通过ssh管道连接内网数据库(mysql)的主要内容,如果未能解决你的问题,请参考以下文章

如何用navicat连接阿里云内网的mysql数据库

通过ssh tunnel连接内网ECS和RDS

ssh连接内网Linux服务器

如何从外网SSH连接内网服务器

怎么通过SSH连接Mysql数据库

通过 ssh 连接 mysql