Heim > Datenbank > MySQL-Tutorial > Wie verbinde ich Python über SSH-Tunneling sicher mit einem Remote-MySQL-Server?

Wie verbinde ich Python über SSH-Tunneling sicher mit einem Remote-MySQL-Server?

Linda Hamilton
Freigeben: 2024-12-01 15:02:10
Original
916 Leute haben es durchsucht

How to Securely Connect Python to a Remote MySQL Server via SSH Tunneling?

Python mit MySQL über SSH-Tunneling verbinden

Der Aufbau einer Verbindung zwischen Python und einem Remote-MySQL-Server über einen SSH-Tunnel ist für sichere Daten unerlässlich Abrufen und Manipulieren. Während einfache MySQL-Verbindungen unkompliziert sind, bietet die Erstellung eines verschlüsselten SSH-Tunnels eine zusätzliche Sicherheitsebene.

So ermöglichen Sie Python, über einen SSH-Tunnel eine Verbindung zu MySQL herzustellen:

import pymysql
import paramiko
import pandas as pd
from paramiko import SSHClient
from sshtunnel import SSHTunnelForwarder
from os.path import expanduser

home = expanduser('~')
mypkey = paramiko.RSAKey.from_private_key_file(home + pkeyfilepath)

sql_hostname = 'sql_hostname'
sql_username = 'sql_username'
sql_password = 'sql_password'
sql_main_database = 'db_name'
sql_port = 3306
ssh_host = 'ssh_hostname'
ssh_user = 'ssh_username'
ssh_port = 22
sql_ip = '1.1.1.1.1'

with SSHTunnelForwarder(
        (ssh_host, ssh_port),
        ssh_username=ssh_user,
        ssh_pkey=mypkey,
        remote_bind_address=(sql_hostname, sql_port)) as tunnel:
    conn = pymysql.connect(host='127.0.0.1', user=sql_username,
            passwd=sql_password, db=sql_main_database,
            port=tunnel.local_bind_port)
    query = '''SELECT VERSION();'''
    data = pd.read_sql_query(query, conn)
    conn.close()
Nach dem Login kopieren

Dieser Code richtet mithilfe von SSHTunnelForwarder einen SSH-Tunnel zwischen dem lokalen Computer und dem Remote-MySQL-Server ein. Die SSH-Verbindung nutzt einen privaten Schlüssel zur Authentifizierung und sorgt so für erhöhte Sicherheit.

Sobald der Tunnel eingerichtet ist, wird eine Python-MySQL-Verbindung zur lokalen Adresse des Tunnels hergestellt, was einen sicheren Zugriff auf die MySQL-Datenbank ermöglicht. Anschließend können Abfragen ausgeführt werden, um Daten vom Server abzurufen oder zu bearbeiten.

Das obige ist der detaillierte Inhalt vonWie verbinde ich Python über SSH-Tunneling sicher mit einem Remote-MySQL-Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage