SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络上安全地执行远程命令和传输数据。MySQL 是一种流行的关系型数据库管理系统。通过 SSH 连接 MySQL 数据库,可以在保证数据传输安全性的同时,远程管理和操作数据库。
SSH 连接 MySQL 数据库主要有两种方式:
原因:
sshd_config
)中的设置可能不正确。my.cnf
)中的设置可能不正确。解决方法:
localhost:3307
连接 MySQL。以下是一个使用 Python 和 pymysql
库通过 SSH 隧道连接 MySQL 数据库的示例:
import pymysql
import paramiko
# SSH 连接参数
ssh_host = 'remote_host'
ssh_port = 22
ssh_user = 'user'
ssh_password = 'password'
# MySQL 连接参数
mysql_host = 'localhost'
mysql_port = 3306
mysql_user = 'db_user'
mysql_password = 'db_password'
mysql_db = 'db_name'
# 创建 SSH 客户端
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(ssh_host, ssh_port, ssh_user, ssh_password)
# 创建 SSH 隧道
transport = ssh_client.get_transport()
local_port = 3307
remote_port = mysql_port
transport.request_port_forward('', local_port)
# 使用 pymysql 连接 MySQL
conn = pymysql.connect(host='localhost', port=local_port, user=mysql_user, password=mysql_password, db=mysql_db)
cursor = conn.cursor()
# 执行查询
cursor.execute("SELECT * FROM table_name")
results = cursor.fetchall()
for row in results:
print(row)
# 关闭连接
cursor.close()
conn.close()
ssh_client.close()
通过以上步骤和示例代码,你应该能够成功通过 SSH 连接 MySQL 数据库,并解决常见的连接问题。
领取专属 10元无门槛券
手把手带您无忧上云