python詳解如何通過(guò)sshtunnel pymssql實(shí)現(xiàn)遠(yuǎn)程連接數(shù)據(jù)庫(kù)
最近幾天在做Python相關(guān)項(xiàng)目,有個(gè)需求 ,是希望在任何機(jī)器上都可以ssh到某臺(tái)在數(shù)據(jù)庫(kù)白名單的機(jī)器上,然后訪問(wèn)數(shù)據(jù)庫(kù),不然的話就要去服務(wù)器安裝Python環(huán)境,運(yùn)行程序,比較麻煩,翻閱多篇博客文章,決定自己去實(shí)現(xiàn)。
涉及庫(kù):pymssql、sshtunnel
涉及數(shù)據(jù)庫(kù):SQLSERVER
場(chǎng)景如下:

跳板機(jī)核心代碼
def __get_ssh_connector(self):
# 遠(yuǎn)程連接
# 跳板機(jī)地址 端口,服務(wù)器賬號(hào),密碼配置
server = SSHTunnelForwarder(
(
self.connect_config.get("ssh_host", ‘白名單服務(wù)器地址'),
self.connect_config.get("ssh_port", 22)
),
ssh_username=self.connect_config.get("ssh_username", ‘白名單服務(wù)器賬號(hào) '),
ssh_password=self.connect_config.get("ssh_password", ‘白名單服務(wù)器密碼 '),
# 內(nèi)網(wǎng)數(shù)據(jù)庫(kù)地址和端口
remote_bind_address=(self.connect_config.get("dbserver", '目標(biāo)數(shù)據(jù)庫(kù)地址'), self.connect_config.get("ssh_mssql_port", ‘?dāng)?shù)據(jù)庫(kù)端口'))
)
server.start()
return server # 遠(yuǎn)程主機(jī)上的mssql通過(guò)ssh連接映射到本地的端口
pymssql 連接數(shù)據(jù)庫(kù)核心代碼
def get_mssql_connector(self):
return get_mssql_connector({
"port": self.server.local_bind_port, #非常重要
"username": ‘目標(biāo)數(shù)據(jù)庫(kù)賬號(hào)',
"password": ‘目標(biāo)數(shù)據(jù)庫(kù)密碼',
"db": self.connect_config.get('db', ‘目標(biāo)數(shù)據(jù)庫(kù)')
})
def __get_mssql_connector(database_config):
host = database_config.get('host', '127.0.0.1')
port = database_config.get('port', ‘?dāng)?shù)據(jù)庫(kù)端口')
user = database_config.get('username', ‘目標(biāo)數(shù)據(jù)庫(kù)賬號(hào)')
passwd = database_config.get('password', ‘目標(biāo)數(shù)據(jù)庫(kù)密碼')
db = database_config.get('db', ‘目標(biāo)數(shù)據(jù)庫(kù)')
return pymssql.connect(host=host, port=port, user=user, password=passwd, database=db, charset="UTF-8")
MySql 和SQLSERVER方法一樣,不一樣的地方pymssql.connect改成pymysql.connect
人生第一篇技術(shù)博客,第一次奉獻(xiàn)給 大家
到此這篇關(guān)于python詳解如何通過(guò)sshtunnel pymssql實(shí)現(xiàn)遠(yuǎn)程連接數(shù)據(jù)庫(kù)的文章就介紹到這了,更多相關(guān)python 遠(yuǎn)程連接數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 自動(dòng)批量打開(kāi)網(wǎng)頁(yè)的示例
今天小編就為大家分享一篇python 自動(dòng)批量打開(kāi)網(wǎng)頁(yè)的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02
python開(kāi)發(fā)一個(gè)解析protobuf文件的簡(jiǎn)單編譯器
這篇文章主要介紹了python如何開(kāi)發(fā)一個(gè)解析protobuf文件的簡(jiǎn)單編譯器,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-11-11
python模型集成知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家整理了一篇關(guān)于python模型集成知識(shí)點(diǎn)總結(jié),有需要的朋友們可以學(xué)習(xí)參考下。2021-08-08
Python使用turtle和matplotlib繪制圓和愛(ài)心的示例代碼
這篇文章主要是帶大家用Python的turtle和matplotlib畫(huà)出圓滿和愛(ài)心,文中的示例代碼講解的非常詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,感興趣的可以了解一下2023-06-06
windows下python使用ffmpeg實(shí)現(xiàn)rtsp推流
這篇文章主要為大家詳細(xì)介紹了在windows環(huán)境下python如何使用ffmpeg實(shí)現(xiàn)rtsp推流,文中的示例代碼講解詳細(xì),有需要的小伙伴可以了解一下2023-09-09
Python中AI圖像識(shí)別實(shí)現(xiàn)身份證識(shí)別
圖像識(shí)別說(shuō)白了就是把一張照片上面的文字進(jìn)行提取,提供工作效率,本文主要介紹了Python 身份證識(shí)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
Python實(shí)現(xiàn)字符串匹配算法代碼示例
這篇文章主要介紹了Python實(shí)現(xiàn)字符串匹配算法代碼示例,涉及字符串匹配存在的問(wèn)題,蠻力法字符串匹配,Horspool算法,具有一定參考價(jià)值,需要的朋友可以了解下。2017-12-12
python爬蟲(chóng)設(shè)置每個(gè)代理ip的簡(jiǎn)單方法
在本篇文章里小編給大家整理了一篇關(guān)于python爬蟲(chóng)設(shè)置每個(gè)代理ip的簡(jiǎn)單方法,有興趣的朋友們可以學(xué)習(xí)參考下。2021-08-08

