Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menyambung Python dengan Selamat ke Pelayan MySQL Menggunakan Terowong SSH dan Pasangan Kunci pada Mesin yang Sama?

Bagaimana untuk Menyambung Python dengan Selamat ke Pelayan MySQL Menggunakan Terowong SSH dan Pasangan Kunci pada Mesin yang Sama?

Mary-Kate Olsen
Lepaskan: 2024-12-04 00:04:11
asal
443 orang telah melayarinya

How to Securely Connect Python to a MySQL Server Using SSH Tunneling and Key Pairs on the Same Machine?

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()
Salin selepas log masuk

Komponen Utama

  • SSH Tunnel Forwarder: Pustaka ini menguruskan sambungan SSH dan mewujudkan terowong antara pelanggan dan pelayan SSH.
  • Kunci Hos Pasangan: Kekunci ini digunakan untuk mengesahkan sambungan SSH dan memastikan komunikasi yang selamat.
  • SSHTunnelForwarder.remote_bind_address: Menentukan tempat terowong akan bersambung ke pelayan MySQL.
  • PyMySQL: Digunakan untuk mewujudkan sambungan MySQL menggunakan pelabuhan pengikat tempatan terowong.

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan