SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络上安全地运行网络服务。它常用于远程登录服务器,进行命令行操作。
MySQL是一种关系型数据库管理系统,广泛应用于Web应用、数据分析等领域。通过SSH登录MySQL,可以在保证数据传输安全的前提下,远程管理和操作数据库。
原因:
解决方法:
原因:
解决方法:
以下是一个使用Python通过SSH隧道连接到MySQL数据库的示例代码:
import pymysql
from sshtunnel import SSHTunnelForwarder
# 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_mysql_db'
# 创建SSH隧道
with SSHTunnelForwarder(
(ssh_host, ssh_port),
ssh_username=ssh_username,
ssh_password=ssh_password,
remote_bind_address=('127.0.0.1', mysql_port)
) as tunnel:
# 创建MySQL连接
conn = pymysql.connect(
host='127.0.0.1',
port=tunnel.local_bind_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()
请注意,以上示例代码中的your_ssh_host
、your_ssh_username
、your_ssh_password
、your_mysql_user
、your_mysql_password
、your_mysql_db
和your_table
需要替换为实际的值。同时,确保已安装pymysql
和sshtunnel
库,可以使用pip install pymysql sshtunnel
命令进行安装。
领取专属 10元无门槛券
手把手带您无忧上云