最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python如何通過(guò)跳板機(jī)連接MySQL

 更新時(shí)間:2022年12月13日 09:36:12   作者:Marvin_BHR  
這篇文章主要介紹了python如何通過(guò)跳板機(jī)連接MySQL問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

python通過(guò)跳板機(jī)連接MySQL

生產(chǎn)環(huán)境中,為了安全起見(jiàn),大多數(shù)的數(shù)據(jù)庫(kù)是無(wú)法在本地直接訪問(wèn)的,需要先連接跳板機(jī),然后通過(guò)跳板機(jī)訪問(wèn)。

這么做雖然在安全方面稍有保證,但是對(duì)于寫(xiě)代碼的人來(lái)說(shuō),增加了一定的難度,以下是我個(gè)人對(duì)python連接跳板機(jī)連接mysql的一些總結(jié)。

首先,需要下載sshtunnel包,使用pip即可,其次是連接MySQL的包,這個(gè)根據(jù)自己的喜好來(lái)就好,我個(gè)人常用的是mysql.connector和pymysql,這里就使用mysql.connector。

代碼如下:

import mysql.connector
from sshtunnel import SSHTunnelForwarder
server = SSHTunnelForwarder(
? ? ? ? (host_jump, int(port_jump)), ?# 跳板機(jī)的配置
? ? ? ? ssh_pkey=ssh_pk_jump,
? ? ? ? ssh_username=user_name_jump,
? ? ? ? remote_bind_address=(host_mysql, int(port_mysql))) ?# 數(shù)據(jù)庫(kù)服務(wù)器的配置
server.start()
conn = mysql.connector.connect(host='127.0.0.1', port=server.local_bind_port, user=user_name_mysql, password=password_mysql, database=database)
# do something...
conn.close()
server.close()

說(shuō)明:

1:因?yàn)槲业奶鍣C(jī)是通過(guò)密鑰連接的,所以需要ssh_pkey參數(shù),值是密鑰的路徑,如果需要通過(guò)密碼連接,將該參數(shù)換成ssh_password即可;

2:SSHTunnelForwarder方法返回的server對(duì)象必須調(diào)用start()方法后才可以正常使用;

3:在連接MySQL時(shí),connect()方法的參數(shù)中的host必須為127.0.0.1;

4:由于端口必須為數(shù)字類(lèi)型,所以使用int()方法轉(zhuǎn)換;

5:使用結(jié)束后,為了安全起見(jiàn),調(diào)用server的close()方法關(guān)閉連接,當(dāng)然也可以使用with語(yǔ)句,如下:

with SSHTunnelForwarder(
? ? ? ? (host_jump, int(port_jump)), ?# 跳板機(jī)的配置
? ? ? ? ssh_pkey=ssh_pk_jump,
? ? ? ? ssh_username=user_name_jump,
? ? ? ? remote_bind_address=(host_mysql, int(port_mysql))) as server: ?# MySQL服務(wù)器的配置
? ? conn = pymysql.connect(host='127.0.0.1', port=server.local_bind_port, user=user_name_mysql, password=password, database=database)

此時(shí)不僅可以省略close()方法,也可以省略start()方法。

MySql跳板機(jī) python連接方法及配置

import pymysql
from sshtunnel import SSHTunnelForwarder
#可能需要安裝上面的包
 
#跳板機(jī)
host_jump=跳板機(jī)ip
port_jump=跳板機(jī)port
user_name_jump=跳板機(jī)用戶(hù)名
ssh_password=跳板機(jī)密碼
 
#數(shù)據(jù)庫(kù)
host_mysql=數(shù)據(jù)庫(kù)ip
port_mysql=數(shù)據(jù)庫(kù)port
user_name_mysql=數(shù)據(jù)庫(kù)用戶(hù)名
password_mysql=數(shù)據(jù)庫(kù)密碼
database=數(shù)據(jù)庫(kù)名稱(chēng)
local_bind_port=22 #本地端口自行定義
 
server = SSHTunnelForwarder(
    (host_jump, int(port_jump)),  # 跳板機(jī)的配置
    ssh_password=ssh_password,
    ssh_username=user_name_jump,
    remote_bind_address=(host_mysql, int(port_mysql)))  # 數(shù)據(jù)庫(kù)服務(wù)器的配置
 
server.start() #啟動(dòng)server
 
connection = pymysql.connect(host='127.0.0.1', port=server.local_bind_port, 
			user=user_name_mysql, password=password_mysql, database=database,
			charset="utf8", cursorclass=pymysql.cursors.DictCursor)
cursor = connection.cursor()
cursor.execute('select * from test_db where id=1')
data=cursor.fetchall()
 
#注意關(guān)閉
conn.close()
server.close()
 
print(data)

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python讀取注冊(cè)表中值的方法

    python讀取注冊(cè)表中值的方法

    在Python的標(biāo)準(zhǔn)庫(kù)中,_winreg.pyd可以操作Windows的注冊(cè)表,另外第三方的win32庫(kù)封裝了大量的Windows API,使用起來(lái)也很方便。不過(guò)這里介紹的是使用_winreg操作注冊(cè)表,畢竟是Python自帶的標(biāo)準(zhǔn)庫(kù),無(wú)需安裝第三方庫(kù)
    2013-04-04
  • pandas string轉(zhuǎn)dataframe的方法

    pandas string轉(zhuǎn)dataframe的方法

    下面小編就為大家分享一篇pandas string轉(zhuǎn)dataframe的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • python輸出pdf文檔的實(shí)例

    python輸出pdf文檔的實(shí)例

    今天小編就為大家分享一篇python輸出pdf文檔的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • python實(shí)現(xiàn)機(jī)械分詞之逆向最大匹配算法代碼示例

    python實(shí)現(xiàn)機(jī)械分詞之逆向最大匹配算法代碼示例

    這篇文章主要介紹了python實(shí)現(xiàn)機(jī)械分詞之逆向最大匹配算法代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Python endswith()函數(shù)的具體使用

    Python endswith()函數(shù)的具體使用

    本文主要介紹了Python endswith()函數(shù)的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Python如何統(tǒng)計(jì)大小寫(xiě)字母?jìng)€(gè)數(shù)和數(shù)字個(gè)數(shù)

    Python如何統(tǒng)計(jì)大小寫(xiě)字母?jìng)€(gè)數(shù)和數(shù)字個(gè)數(shù)

    這篇文章主要介紹了Python如何統(tǒng)計(jì)大小寫(xiě)字母?jìng)€(gè)數(shù)和數(shù)字個(gè)數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python?面向切面編程?AOP?及裝飾器

    Python?面向切面編程?AOP?及裝飾器

    這篇文章主要介紹了Python?面向切面編程?AOP?及裝飾器,AOP,就是面向切面編程,簡(jiǎn)單的說(shuō),就是動(dòng)態(tài)地將代碼切入到類(lèi)的指定方法、指定位置上的編程思想就是面向切面的編程,更多相關(guān)資需要的小伙伴可以參考下面文章內(nèi)容
    2022-05-05
  • 深入理解Python對(duì)Json的解析

    深入理解Python對(duì)Json的解析

    Json是一種常用的數(shù)據(jù)交換結(jié)構(gòu),由于輕量、易于閱讀和編寫(xiě)等特點(diǎn),在網(wǎng)絡(luò)方面應(yīng)用很廣。下面這篇文章主要介紹了Python對(duì)Json解析的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-02-02
  • PySide2出現(xiàn)“ImportError: DLL load failed: 找不到指定的模塊”的問(wèn)題及解決方法

    PySide2出現(xiàn)“ImportError: DLL load failed: 找不到指定的模塊”的問(wèn)題及解決方法

    這篇文章主要介紹了PySide2出現(xiàn)“ImportError: DLL load failed: 找不到指定的模塊”的問(wèn)題及解決方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2020-06-06
  • python進(jìn)度條tqdm使用方式

    python進(jìn)度條tqdm使用方式

    這篇文章主要介紹了python進(jìn)度條tqdm使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02

最新評(píng)論

临沭县| 客服| 土默特右旗| 湖南省| 揭西县| 津市市| 邓州市| 丰顺县| 霸州市| 乌兰浩特市| 孙吴县| 洪雅县| 马公市| 建阳市| 镇巴县| 达拉特旗| 濉溪县| 秀山| 报价| 镇坪县| 邯郸市| 土默特左旗| 湟中县| 西昌市| 麟游县| 内丘县| 芷江| 孟津县| 新宁县| 溧阳市| 新乐市| 资阳市| 巴马| 府谷县| 泗阳县| 遂溪县| 登封市| 贵德县| 蓝山县| 永靖县| 富宁县|