通過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()                #關閉數據庫連接

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM