Python mit MySQL über SSH-Tunneling verbinden
Einführung
Einrichten sicherer Verbindungen zwischen Python und MySQL-Server sind für den Datenaustausch und die Datenverwaltung unerlässlich. Durch den Einsatz von SSH-Tunneling können wir die Sicherheit dieser Verbindungen erhöhen, indem wir einen verschlüsselten Kanal zwischen Client und Server erstellen. In diesem Artikel wird untersucht, wie man mit Python eine solche Tunnelverbindung herstellt.
Frage
Wie können wir Python ermöglichen, über einen SSH-Tunnel eine Verbindung zu einem MySQL-Server herzustellen, erleichtert durch SSH-Schlüsselpaare, wobei sich der SSH-Tunnelhost und der MySQL-Server auf demselben befinden Maschine?
Antwort
Verwendung von SSH TunnelForwarder
Der folgende Ansatz nutzt die SSHtunnel-Bibliothek, um den Tunnel einzurichten und dann eine Verbindung herzustellen zu MySQL mit pymysql:
import pymysql import paramiko import pandas as pd from paramiko import SSHClient from sshtunnel import SSHTunnelForwarder 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' # Create the SSH tunnel with SSHTunnelForwarder( (ssh_host, ssh_port), ssh_username=ssh_user, ssh_pkey=mypkey, remote_bind_address=(sql_hostname, sql_port)) as tunnel: # Connect to MySQL conn = pymysql.connect(host='127.0.0.1', user=sql_username, passwd=sql_password, db=sql_main_database, port=tunnel.local_bind_port) # Execute a query query = '''SELECT VERSION();''' data = pd.read_sql_query(query, conn) # Close the connection conn.close()
Schlüssel Komponenten
Das obige ist der detaillierte Inhalt vonWie verbinde ich Python mithilfe von SSH-Tunneling und Schlüsselpaaren auf demselben Computer sicher mit einem MySQL-Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!