python連接mysql的幾種方式


其實在我們編碼過程中,不管是爬蟲還是服務端還是做數據分析的業務場景,都需要對數據庫進行一些數據管理操作,那怎么連庫呢?

pymysql是python用來連數據庫比較常用的之一,接下來我們簡單介紹一下正常pymysql連接和利用ssh通道在借助pymysql連接的使用

 

首先直接連接的 那是非常簡單的 然后就連上了,可以利用conn創建一個cursor,就可以開始sql的增刪改查了,最后記得close哦

mysql_conf = {
        "host": '數據庫ip地址',
        "port": 數據庫連接端口,
        "user": '數據庫賬號',
        "password": '數據庫密碼',
        "db": '要連接的數據庫',
        "charset": "utf8",
        "cursorclass": pymysql.cursors.DictCursor
    }

conn = pymysql.connect(**mysql_conf)

navicat大家都知道怎么連,直接把配置文件對應的數據復制進去就好

 

其實大家會好奇什么是通道呢,使用配置白名單,然后以上面的方式直接連不是也可以嗎?

只能說每個公司的運維人員總有一套自己的安全模式,有些公司除了加白,也有使用ssh通道連接的。

其實原來很簡單,就是通過ssh連接到服務器上面,在通過服務器連接到本地的mysql

 

這里需要安裝sshtunnel配合pymysql進行使用,以下為參考代碼,利用密碼登錄到服務器進行雲集群的連接,如果實在本地服務器上面就把remote_bind_address修改成local_bind_address,對應后面的內容填本地數據庫的配置即可,很簡單吧

def get_conn(ssh_conf,mysql_conf):
    '''
    利用ssh通道連接數據庫
    :param ssh_conf: 服務器配置
    :param mysql_conf: 數據庫配置
    :return:
    '''
    server = SSHTunnelForwarder(
        (ssh_conf["host"], ssh_conf["port"]),
        ssh_password=ssh_conf["ssh_password"],
        ssh_username=ssh_conf["ssh_username"],
        remote_bind_address=(mysql_conf["host"], mysql_conf["port"])
    )
    server.start()

    client = pymysql.connect(host='127.0.0.1',  # 此處必須是是127.0.0.1
                                port=server.local_bind_port,
                                user=mysql_conf["user"],
                                passwd=mysql_conf["password"],
                                db=mysql_conf["db"],
                                charset="utf8")

 

以下說一下navicat如何連接

第一步將服務器的密碼填到ssh中

 

 第二步到常規的地方配置數據的地址,如果是雲集群的就填數據庫的雲地址,如果是本地的填localhost或者127.0.0.1

 

 

其實數據庫還是很好玩的,有問題在更新,最近是因為網絡上面很多都無效,特地自己整理了一份,也作為自己的一個筆記,加油。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM