SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络上安全地运行网络服务。MySQL 是一种关系型数据库管理系统,广泛用于存储和管理数据。通过 SSH 通道连接 MySQL,可以在不直接暴露 MySQL 端口的情况下,安全地访问和操作数据库。
以下是一个使用 Python 和 paramiko
库通过 SSH 通道连接 MySQL 的示例:
import paramiko
import pymysql
# SSH 连接配置
ssh_host = 'your_ssh_host'
ssh_port = 22
ssh_username = 'your_ssh_username'
ssh_password = 'your_ssh_password'
# MySQL 连接配置
mysql_host = 'localhost'
mysql_port = 3306
mysql_user = 'your_mysql_user'
mysql_password = 'your_mysql_password'
mysql_db = 'your_mysql_db'
# 创建 SSH 客户端
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接 SSH 服务器
ssh_client.connect(ssh_host, ssh_port, ssh_username, ssh_password)
# 创建 SSH 通道
transport = ssh_client.get_transport()
local_port = 3307
remote_port = mysql_port
transport.request_port_forward('', local_port)
# 通过本地端口转发连接 MySQL
conn = pymysql.connect(host='127.0.0.1', port=local_port, user=mysql_user, password=mysql_password, db=mysql_db)
# 执行 SQL 查询
cursor = conn.cursor()
cursor.execute("SELECT * FROM your_table")
results = cursor.fetchall()
for row in results:
print(row)
# 关闭连接
cursor.close()
conn.close()
ssh_client.close()
通过以上步骤和示例代码,您可以通过 SSH 通道安全地连接和操作 MySQL 数据库。
领取专属 10元无门槛券
手把手带您无忧上云