通过 SSH 隧道将 Python 连接到 MySQL
简介
在 Python 和 MySQL 之间建立安全连接MySQL 服务器对于数据交换和管理至关重要。通过利用 SSH 隧道,我们可以通过在客户端和服务器之间创建加密通道来增强这些连接的安全性。本文探讨了如何使用 Python 建立这样的隧道连接。
问题
我们如何使 Python 通过 SSH 隧道连接到 MySQL 服务器,通过以下方式实现SSH密钥对,SSH隧道主机和MySQL服务器在同一台
回答
利用 SSH TunnelForwarder
以下方法利用 sshtunnel 库建立隧道然后连接到 MySQL 使用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()
关键组件
以上是如何在同一台机器上使用 SSH 隧道和密钥对将 Python 安全地连接到 MySQL 服务器?的详细内容。更多信息请关注PHP中文网其他相关文章!