我尝试使用创建SSH隧道
ssh -L 3306:localhost:22 <hostip>
Run Code Online (Sandbox Code Playgroud)
然后运行我的python脚本通过localhost连接
conn = MySQLdb.connect(host'localhost', port=3306, user='bob', passwd='na', db='test')
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误
(2002, "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)")
Run Code Online (Sandbox Code Playgroud)
我怎样才能确保我找到正确的主机而不仅仅是绑定的一些问题?
我有一个托管在 Amazon RDS(“D”)上的远程 MySQL 数据库。出于安全目的,它只能通过远程服务器(“C”)访问。C 可通过跳转主机“B”通过 ssh 访问。我需要一个双 ssh 隧道来访问远程 SQL 主机。
[A: local host] -> [B: jump host] -> [C: target host] => [D: RDS MySQL host]
Run Code Online (Sandbox Code Playgroud)
我想通过 Python 访问 D,使用 paramiko 和/或 sshtunnel。我能找到的所有信息都涉及: