SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络上安全地运行网络服务。MySQL则是一种流行的关系型数据库管理系统。结合SSH和MySQL,可以在远程服务器上安全地管理和访问数据库。
ping
命令检查网络连接。my.cnf
),确保允许远程连接。以下是一个使用Python通过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 = '127.0.0.1' # 本地地址,通过SSH隧道转发
mysql_port = 3306
mysql_user = 'your_mysql_user'
mysql_password = 'your_mysql_password'
mysql_db = 'your_database'
# 创建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 = transport.request_port_forward('', 0)
channel = transport.accept(1000)
# 创建MySQL连接
mysql_conn = pymysql.connect(host='127.0.0.1', port=local_port, user=mysql_user, password=mysql_password, db=mysql_db)
# 执行SQL查询
cursor = mysql_conn.cursor()
cursor.execute('SELECT * FROM your_table')
results = cursor.fetchall()
# 关闭连接
cursor.close()
mysql_conn.close()
channel.close()
ssh_client.close()
# 输出结果
for row in results:
print(row)
请注意,上述示例代码仅用于演示目的,实际使用时请根据实际情况修改参数和配置。同时,确保在生产环境中使用安全的连接方式,如SSL/TLS加密连接。
领取专属 10元无门槛券
手把手带您无忧上云