Heim >Datenbank >MySQL-Tutorial >So stellen Sie mithilfe von Python basierend auf SSH eine Remoteverbindung zur MySQL-Datenbank her

So stellen Sie mithilfe von Python basierend auf SSH eine Remoteverbindung zur MySQL-Datenbank her

WBOY
WBOYnach vorne
2023-05-27 16:07:131356Durchsuche

Hintergrund

Wenn Sie auf die MySQL-Datenbank eines Remote-Servers zugreifen müssen, die Sicherheitsmaßnahmen jedoch für den Sicherheitszeitraum der MySQL-Datenbank so eingestellt sind, dass nur lokale Verbindungen zugelassen werden (d. h. Sie müssen sich beim Server anmelden). Wenn andere Remoteverbindungen keinen direkten Zugriff haben und der entsprechende Port geändert wurde, müssen Sie eine SSH-basierte Verbindung zur Datenbank herstellen. Die Methode zum Herstellen einer Verbindung zur Datenbank ähnelt der Schnittstellenverbindung in Navicat über SSH.

So stellen Sie mithilfe von Python basierend auf SSH eine Remoteverbindung zur MySQL-Datenbank her

Navicat

So stellen Sie mithilfe von Python basierend auf SSH eine Remoteverbindung zur MySQL-Datenbank her

Mit der Datenbank verbinden

Installieren Sie die Support-Bibliothek

  • Wenn Sie eine Verbindung zu MySQL herstellen möchten, müssen Sie zuerst pymysql installieren

pip install pymysql
  • Installation basierend auf SSH Bibliothek sshtunnel

  • pip install sshtunnel    #当前最新 0.3.1版
Installieren Sie die neueste SSHtunnel-Bibliothek. Die alte Versionsbibliothek weist einige Fehler auf. Stellen Sie eine Verbindung zu MySQL her, die auf SSH basiert. Es gibt einige Fälle darin

Benutzerdefinierte Abfragefunktion

Sie können die obige Verbindung in einer Funktion kapseln, was für die Verwendung an anderen Orten praktisch ist

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()

Hinweise:

Bei Verwendung der Datenbank conn.commit() , cursor.close(), conn.close()Diese müssen auf standardisierte Weise verwendet werden, um unnötige Fehler zu vermeiden

    Es wird empfohlen, diese Methode zu verwenden, wenn Durch die Eingabe von Parametern cursor.execute(sql,args) verhindern Sie das Risiko einer SQL-Injection
  • conn.commit()cursor.close()conn.close()这些一定要规范使用,防止不必要的bug

  • 传入参数时建议用这种方式cursor.execute(sql,args)

Das obige ist der detaillierte Inhalt vonSo stellen Sie mithilfe von Python basierend auf SSH eine Remoteverbindung zur MySQL-Datenbank her. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen