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

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

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

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

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

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

首先,需要下載sshtunnel包,使用pip即可,其次是連接MySQL的包,這個根據(jù)自己的喜好來就好,我個人常用的是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ù)庫服務(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()

說明:

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

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

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

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

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

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)

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

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

import pymysql
from sshtunnel import SSHTunnelForwarder
#可能需要安裝上面的包
 
#跳板機(jī)
host_jump=跳板機(jī)ip
port_jump=跳板機(jī)port
user_name_jump=跳板機(jī)用戶名
ssh_password=跳板機(jī)密碼
 
#數(shù)據(jù)庫
host_mysql=數(shù)據(jù)庫ip
port_mysql=數(shù)據(jù)庫port
user_name_mysql=數(shù)據(jù)庫用戶名
password_mysql=數(shù)據(jù)庫密碼
database=數(shù)據(jù)庫名稱
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ù)庫服務(wù)器的配置
 
server.start() #啟動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é)

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

相關(guān)文章

  • python讀取注冊表中值的方法

    python讀取注冊表中值的方法

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

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

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

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

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

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

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

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

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

    Python如何統(tǒng)計(jì)大小寫字母個數(shù)和數(shù)字個數(shù)

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

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

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

    深入理解Python對Json的解析

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

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

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

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

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

最新評論

梁河县| 兖州市| 澄城县| 梁河县| 来凤县| 阳东县| 扶风县| 涿鹿县| 浑源县| 日喀则市| 蓬溪县| 荆门市| 绥芬河市| 东乌| 临海市| 泾川县| 涞水县| 凌云县| 普宁市| 岳普湖县| 视频| 崇阳县| 贺兰县| 琼海市| 沙雅县| 奉贤区| 廉江市| 休宁县| 垫江县| 林周县| 明星| 大方县| 达尔| 黑山县| 沂水县| 玉屏| 松滋市| 泉州市| 双鸭山市| 芒康县| 绥化市|