通過ssh管道連線內網資料庫

2022-09-19 00:15:10 字數 1194 閱讀 9490

基於 python 3 

python 2 還沒測試

import

pymysql as mysql

from sshtunnel import

sshtunnelforwarder

server = sshtunnelforwarder(('

ip', '

port

'), #

跳板機ip及埠

ssh_username='

username

', #

跳板機賬號

ssh_password='

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='

username

', #

目標資料庫賬號

passwd='

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通過外網連線內網主機

主機處於內網中時,因為沒有公網ip,所以對公網是不可見的,可以利用公網伺服器進行 連線內網主機 ssh nfr 8899 localhost 22 root b位址 p 22 f 後台執行ssh指令 c 允許壓縮資料 n 不執行遠端指令 r 將遠端主機 伺服器 的某個埠 到本地端指定機器的指定埠 l...

通過SSH隧道連線遠端MySQL資料庫

命令 ssh ncpf root 111.111.111.111 l 3316 127.0.0.1 3306 引數 c 使用壓縮功能,是可選的,加快速度。p 用乙個非特權埠進行出去的連線。f 一旦ssh完成認證並建立port forwarding,則轉入後台執行。n 不執行遠端命令。該引數在只開啟 ...

Python隧道連線內網資料庫

coding utf 8 import pymysql as mysql from sshtunnel import sshtunnelforwarder pip install sshtunnel import pandas as pd author tli file 本地連線內網資料庫 time...