# -*- coding: utf-8 -*-
import pymysql as mysql
from sshtunnel import sshtunnelforwarder # pip install sshtunnel
import pandas as pd
"""@author: tli
@file: 本地連線內網資料庫
@time: 2019-12-06 10:21
@desc:
"""class
sshconnect
(object):
"""本地ssh私鑰校驗連線內網資料庫demo"""
def__init__
(self)
: self.server = sshtunnelforwarder(
('***.xx.xx.***',22
),# 伺服器(跳板機)ip和埠
ssh_username=
"xx"
,# ssh使用者名稱
ssh_pkey=
"/users/***/.ssh/id_rsa"
,# 私鑰檔案絕對定位
ssh_private_key_password="",
# 密碼
remote_bind_address=
("***.xx.xx.***"
,3306))
# 內網資料庫ip及埠
self.server.start(
)# 啟動連線管道
self.db = mysql.connect(host=
'127.0.0.1'
,# 這裡固定填這個不用改
port=self.server.local_bind_port,
# 這裡固定填這個不用改
user=
"***"
,# 連線資料庫使用者名稱
passwd=
"************"
,# 連線資料庫密碼
db="***x"
)# 連線的庫名
self.cursor = self.db.cursor(
)# 獲取資料庫游標
def__del__
(self)
:try
: self.cursor.close(
)# 關閉游標
self.db.close(
)# 關閉資料庫連線
self.server.close(
)except exception:
pass
defdata_handle
(self)
: self.cursor.execute(
"select * from *** where id = 1"
) ret = self.cursor.fetchone(
)print
(ret)
ret_df = pd.read_sql(
"select ***,***,*** from *** where id in (1,2,3,4,5)"
, self.db)
ret_df.to_csv(
'users/***/desktop/***.csv'
, index=0)
class
codeconnect
(object):
"""本地ssh密碼連線內網資料庫demo"""
def__init__
(self)
: self.server = sshtunnelforwarder(
('***.xx.xx.***',22
),# 伺服器(跳板機)ip和埠
ssh_username=
'***'
,# 伺服器(跳板機)使用者名稱
ssh_password=
'******'
,# 伺服器(跳板機)密碼
remote_bind_address=
('***.xx.xx.***'
,3306))
# 內網資料庫ip及埠
self.server.start(
)# 啟動連線管道
self.db = mysql.connect(host=
'127.0.0.1'
, port=self.server.local_bind_port,
user=
'***'
, passwd=
'***xx'
, db=
'***'
) self.cursor = self.db.cursor(
)# 獲取資料庫游標
def__del__
(self)
:try
: self.cursor.close(
) self.db.close(
) self.server.close(
)except exception:
pass
ssh隧道連線內網mysql
一般為了安全,mysql伺服器 假設是a 只會設定為內網可訪問,然後對外部署一台跳板機 假設是b 現在外網客戶端,怎麼訪問a呢?利用serverb將本地3307埠監聽到的訊息本地 到servera的3306埠 ssh fn serverb user serverb ip p 2020 l 3307 ...
通過SSH隧道連線遠端MySQL資料庫
命令 ssh ncpf root 111.111.111.111 l 3316 127.0.0.1 3306 引數 c 使用壓縮功能,是可選的,加快速度。p 用乙個非特權埠進行出去的連線。f 一旦ssh完成認證並建立port forwarding,則轉入後台執行。n 不執行遠端命令。該引數在只開啟 ...
通過ssh管道連線內網資料庫
基於 python 3 python 2 還沒測試 import pymysql as mysql from sshtunnel import sshtunnelforwarder server sshtunnelforwarder ip port 跳板機ip及埠 ssh username user...