Menyambung Python ke MySQL melalui SSH Tunnelling
Pengenalan
Mewujudkan sambungan selamat antara Python dan Pelayan MySQL adalah penting untuk pertukaran dan pengurusan data. Dengan menggunakan terowong SSH, kami boleh meningkatkan keselamatan sambungan ini dengan mencipta saluran yang disulitkan antara pelanggan dan pelayan. Artikel ini meneroka cara mewujudkan sambungan terowong sedemikian menggunakan Python.
Soalan
Bagaimanakah kita boleh membolehkan Python menyambung ke pelayan MySQL melalui terowong SSH, difasilitasi oleh Pasangan kunci SSH, dengan hos terowong SSH dan pelayan MySQL pada sama mesin?
Jawab
Menggunakan SSH TunnelForwarder
Pendekatan berikut menggunakan perpustakaan sshtunnel untuk mewujudkan terowong dan kemudian menyambung kepada MySQL menggunakan 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()
Komponen Utama
Atas ialah kandungan terperinci Bagaimana untuk Menyambung Python dengan Selamat ke Pelayan MySQL Menggunakan Terowong SSH dan Pasangan Kunci pada Mesin yang Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!