Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyambung Python dengan Selamat ke Pelayan MySQL Jauh melalui SSH Tunneling?

Bagaimana untuk Menyambung Python dengan Selamat ke Pelayan MySQL Jauh melalui SSH Tunneling?

Linda Hamilton
Linda Hamiltonasal
2024-12-01 15:02:10873semak imbas

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

Menyambung Python ke MySQL melalui SSH Tunneling

Mewujudkan sambungan antara Python dan pelayan MySQL jauh melalui terowong SSH adalah penting untuk data selamat mendapatkan semula dan manipulasi. Walaupun sambungan MySQL asas adalah mudah, mencipta terowong SSH yang disulitkan menambah lapisan keselamatan tambahan.

Berikut ialah cara untuk membolehkan Python menyambung ke MySQL melalui terowong SSH:

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

Kod ini mewujudkan terowong SSH antara mesin tempatan dan pelayan MySQL jauh menggunakan SSHTunnelForwarder. Sambungan SSH menggunakan kunci persendirian untuk pengesahan, memastikan keselamatan yang dipertingkatkan.

Setelah terowong diwujudkan, sambungan Python MySQL dibuat ke alamat setempat terowong, membolehkan akses selamat ke pangkalan data MySQL. Pertanyaan kemudiannya boleh dilaksanakan untuk mendapatkan semula atau memanipulasi data daripada pelayan.

Atas ialah kandungan terperinci Bagaimana untuk Menyambung Python dengan Selamat ke Pelayan MySQL Jauh melalui SSH Tunneling?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn