gpt4 book ai didi

python - ssh 首先在 python 中使用 mysqldb

转载 作者:可可西里 更新时间:2023-11-01 06:53:01 24 4
gpt4 key购买 nike

我正在尝试使用 Python 中的 MySQLdb 连接到远程服务器上的 MySQL 数据库。问题是首先我需要通过 SSH 连接到主机,然后我需要从那里连接到 MySQL 服务器。不过,我遇到的问题是 MySQLdb 似乎没有办法在连接到 SQL 服务器之前建立 SSH 连接。我已经检查了文档,但没有任何运气。

这就是我的连接方式:

conn = MySQLdb.connect(host = 'mysqlhost.domain.com:3306', user = 'user', passwd = 'password', db = 'dbname')

但我真正需要的是这样的东西:

conn = MySQLdb.connect(sshhost = 'sshhost.domain.com', sshuser = 'sshusername', sshpasswd = 'sshpasswd', host = 'mysqlhost.domain.com:3306', user = 'user', passwd = 'password', db = 'dbname')

这当然是编造的。任何人都可以提出任何建议吗?

最佳答案

我更喜欢将隧道保留在 python 代码中,我讨厌手动或单独创建隧道,这要归功于 sshtunnel 库,它使用起来非常简单。

这里有一些简单的示例,可以满足您的需求。

import MySQLdb
from sshtunnel import SSHTunnelForwarder

with SSHTunnelForwarder(
('sshhost.domain.com', 22),
ssh_password="sshpasswd",
ssh_username="sshusername",
remote_bind_address=('mysqlhost.domain.com', 3306)) as server:

conn = MySQLdb.connect(host='127.0.0.1',
port=server.local_bind_port,
user='user',
passwd='password',
db='dbname')

关于python - ssh 首先在 python 中使用 mysqldb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9070708/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com