python詳解如何通過sshtunnel pymssql實現(xiàn)遠(yuǎn)程連接數(shù)據(jù)庫
最近幾天在做Python相關(guān)項目,有個需求 ,是希望在任何機(jī)器上都可以ssh到某臺在數(shù)據(jù)庫白名單的機(jī)器上,然后訪問數(shù)據(jù)庫,不然的話就要去服務(wù)器安裝Python環(huán)境,運(yùn)行程序,比較麻煩,翻閱多篇博客文章,決定自己去實現(xiàn)。
涉及庫:pymssql、sshtunnel
涉及數(shù)據(jù)庫:SQLSERVER
場景如下:
跳板機(jī)核心代碼
def __get_ssh_connector(self): # 遠(yuǎn)程連接 # 跳板機(jī)地址 端口,服務(wù)器賬號,密碼配置 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ù)器賬號 '), ssh_password=self.connect_config.get("ssh_password", ‘白名單服務(wù)器密碼 '), # 內(nèi)網(wǎng)數(shù)據(jù)庫地址和端口 remote_bind_address=(self.connect_config.get("dbserver", '目標(biāo)數(shù)據(jù)庫地址'), self.connect_config.get("ssh_mssql_port", ‘?dāng)?shù)據(jù)庫端口')) ) server.start() return server # 遠(yuǎn)程主機(jī)上的mssql通過ssh連接映射到本地的端口
pymssql 連接數(shù)據(jù)庫核心代碼
def get_mssql_connector(self): return get_mssql_connector({ "port": self.server.local_bind_port, #非常重要 "username": ‘目標(biāo)數(shù)據(jù)庫賬號', "password": ‘目標(biāo)數(shù)據(jù)庫密碼', "db": self.connect_config.get('db', ‘目標(biāo)數(shù)據(jù)庫') })
def __get_mssql_connector(database_config): host = database_config.get('host', '127.0.0.1') port = database_config.get('port', ‘?dāng)?shù)據(jù)庫端口') user = database_config.get('username', ‘目標(biāo)數(shù)據(jù)庫賬號') passwd = database_config.get('password', ‘目標(biāo)數(shù)據(jù)庫密碼') db = database_config.get('db', ‘目標(biāo)數(shù)據(jù)庫') 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詳解如何通過sshtunnel pymssql實現(xiàn)遠(yuǎn)程連接數(shù)據(jù)庫的文章就介紹到這了,更多相關(guān)python 遠(yuǎn)程連接數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
OpenCV+Python--RGB轉(zhuǎn)HSI的實現(xiàn)
今天小編就為大家分享一篇OpenCV+Python--RGB轉(zhuǎn)HSI的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11opencv python截取圓形區(qū)域的實現(xiàn)
本文主要介紹了opencv python截取圓形區(qū)域的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Python實現(xiàn)腳本鎖功能(同時只能執(zhí)行一個腳本)
這篇文章主要介紹了Python實現(xiàn)腳本鎖功能(同時只能執(zhí)行一個腳本),本文給大家分享了兩種方法,大家可以根據(jù)個人所需選擇適合自己的方法2017-05-05吳恩達(dá)機(jī)器學(xué)習(xí)練習(xí):SVM支持向量機(jī)
這篇文章主要為我們帶來了吳恩達(dá)機(jī)器學(xué)習(xí)的一個練習(xí):SVM支持向量機(jī),通過本次練習(xí)相信你能對機(jī)器學(xué)習(xí)深入更進(jìn)一步,需要的朋友可以參考下2021-04-04tensorflow將圖片保存為tfrecord和tfrecord的讀取方式
今天小編就為大家分享一篇tensorflow將圖片保存為tfrecord和tfrecord的讀取方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02python的描述符(descriptor)、裝飾器(property)造成的一個無限遞歸問題分享
這篇文章主要介紹了python的描述符(descriptor)、裝飾器(property)造成的一個無限遞歸問題分享,一個不太會遇到的問題,需要的朋友可以參考下2014-07-07