透過SSH 隧道將Python 連接到MySQL
透過SSH 隧道在Python 和遠端MyMy重要檢索和操作。雖然基本的 MySQL 連線很簡單,但建立加密的 SSH 隧道會增加額外的安全層。
以下是如何讓 Python 透過 SSH 隧道連接到 MySQL:
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()
此程式碼使用 SSHTunnelForwarder 在本機電腦和遠端 MySQL 伺服器之間建立 SSH 隧道。 SSH 連線使用私鑰進行身份驗證,確保增強的安全性。
隧道建立後,將與隧道的本地位址建立 Python MySQL 連接,從而安全地存取 MySQL 資料庫。然後可以執行查詢以檢索或操作來自伺服器的資料。
以上是如何透過 SSH 隧道將 Python 安全地連接到遠端 MySQL 伺服器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!