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

Python基于ssh遠程連接Mysql數據庫操作

 更新時間:2022年06月23日 11:50:34   作者:數據人阿多  
這篇文章主要為大家介紹了Python基于ssh遠程連接Mysql數據庫操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

背景

如果需要訪問遠程服務器的Mysql數據庫,但是該Mysql數據庫為了安全期間,安全措施設置為只允許本地連接(也就是你需要登錄到該臺服務器才能使用),其他遠程連接是不可以直接訪問,并且相應的端口也做了修改,那么就需要基于ssh來連接該數據庫。這種方式連接數據庫與Navicat里面界面化基于ssh連接一樣。

Navicat

連接數據庫

安裝支持庫

  • 如果要連接Mysql,首先需要安裝pymysql
pip install pymysql
  • 安裝基于ssh的庫sshtunnel
pip install sshtunnel    #當前最新 0.3.1版

建議安裝最新的sshtunnel庫,舊版本庫有一些bug

連接Mysql

基于ssh連接Mysql可以查看sshtunnel的文檔,里面有一些案例

with SSHTunnelForwarder(
        ('192.168.1.1', 2222),
        ssh_password='123456',
        ssh_username='root',
        remote_bind_address=('127.0.0.1', 3306)) as server:
    print('SSH連接成功')
    conn = pymysql.connect(host='127.0.0.1',
                           port=server.local_bind_port,
                           user='root',
                           database='data',
                           charset='utf8')
    print('mysql數據庫連接成功')
    cursor = conn.cursor()
    ...  #獲取數據操作,此處省略
    cursor.close()
    conn.close()

自定義查詢函數

可以對上面的連接進行封裝為一個函數,方便其他地方使用

def mysql_ssh(sql,args=None):
    with SSHTunnelForwarder(
            ('192.168.1.1', 2222),
            ssh_password='123456',
            ssh_username='root',
            remote_bind_address=('127.0.0.1', 3306)) as server:
        print('SSH連接成功')
        conn = pymysql.connect(host='127.0.0.1',
                               port=server.local_bind_port,
                               user='root',
                               database='data',
                               charset='utf8')
        print('mysql數據庫連接成功')
        cursor = conn.cursor()
        print('游標獲取成功')
        try:
            print(f'執(zhí)行查詢語句:{sql}  參數:{args}')
            cursor.execute(sql,args)
            print('數據查詢成功')
            conn.commit()
            print('事務提交成功')
            datas = cursor.fetchall()
            success = True
        except:
            print('數據查詢失敗')
            datas = None
            success = False
        print('正在關閉數據庫連接')
        cursor.close()
        conn.close()
    return datas, success

注意點:

  • 在使用數據庫時,conn.commit()、cursor.close()conn.close()這些一定要規(guī)范使用,防止不必要的bug
  • 傳入參數時建議用這種方式cursor.execute(sql,args),防止sql注入的風險

相關參考:

Python加載txt數據亂碼問題升級版解決方法

Python文件打包成exe可執(zhí)行程序

以上就是Python基于ssh遠程連接Mysql數據庫操作的詳細內容,更多關于Python ssh遠程連接Mysql的資料請關注腳本之家其它相關文章!

相關文章

  • python文字和unicode/ascll相互轉換函數及簡單加密解密實現代碼

    python文字和unicode/ascll相互轉換函數及簡單加密解密實現代碼

    這篇文章主要介紹了python文字和unicode/ascll相互轉換函數及簡單加密解密實現代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • python實現圖片九宮格分割的示例

    python實現圖片九宮格分割的示例

    這篇文章主要介紹了python實現圖片九宮格分割的示例,幫助大家更好的利用python處理圖片,感興趣的朋友可以了解下
    2021-04-04
  • 搞笑的程序猿:看看你是哪種Python程序員

    搞笑的程序猿:看看你是哪種Python程序員

    這篇文章主要介紹了搞笑的程序猿:看看你是哪種Python程序員,不久前,在互聯網上出現了一篇有趣的文章,講的是對于同一個問題,不同層次的Python程序員編出的Python代碼,顯示出了不同的風格,代碼都很簡單,有趣,需要的朋友可以參考下
    2015-06-06
  • Django超詳細講解圖書管理系統的實現

    Django超詳細講解圖書管理系統的實現

    前段時間翻文件發(fā)現了以前學習python和django時做的一個系統,當時的想法是將這玩意做出來應付web開發(fā)大作業(yè)、課程設計作業(yè)甚至是畢設用的,實際上也確實應付了課程設計,功能雖然不算多,但是應付課程設計或者大作業(yè)綽綽有余了
    2022-07-07
  • python輸入整條數據分割存入數組的方法

    python輸入整條數據分割存入數組的方法

    今天小編就為大家分享一篇python輸入整條數據分割存入數組的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python爬取某拍短視頻

    Python爬取某拍短視頻

    現在短視頻可謂是一騎絕塵,吃飯的時候、休息的時候、躺在床上都在刷短視頻,今天給大家?guī)韕ython爬蟲進階 :美拍視頻地址加密解析,需要的朋友可以參考下
    2021-06-06
  • Python常用模塊函數代碼匯總解析

    Python常用模塊函數代碼匯總解析

    這篇文章主要介紹了Python常用模塊函數代碼匯總解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • Python 異步之生成器示例詳解

    Python 異步之生成器示例詳解

    這篇文章主要為大家介紹了Python 異步之生成器示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • 用python畫了個圣誕樹給女朋友

    用python畫了個圣誕樹給女朋友

    大家好,本篇文章主要講的是用python畫了個圣誕樹給女朋友,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Python實現比較撲克牌大小程序代碼示例

    Python實現比較撲克牌大小程序代碼示例

    這篇文章主要介紹了Python實現比較撲克牌大小程序代碼示例,具有一定借鑒價值,需要的朋友可以了解下。
    2017-12-12

最新評論

凤山县| 江口县| 明光市| 玉溪市| 九龙县| 肃北| 南溪县| 淳安县| 甘洛县| 德兴市| 神农架林区| 谢通门县| 南木林县| 老河口市| 松原市| 侯马市| 福清市| 文化| 海城市| 莱芜市| 榆社县| 岳西县| 绥滨县| 竹溪县| 莆田市| 留坝县| 湖州市| 德惠市| 福安市| 额济纳旗| 阜南县| 隆德县| 青铜峡市| 桃江县| 连江县| 洛扎县| 蓬溪县| 常宁市| 石泉县| 延安市| 固安县|