[英]SSH Tunnel for Python MySQLdb connection
我嘗試使用創建SSH隧道
ssh -L 3306:localhost:22 <hostip>
然后運行我的python腳本通過localhost連接
conn = MySQLdb.connect(host'localhost', port=3306, user='bob', passwd='na', db='test')
但是,我收到以下錯誤
(2002, "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)")
我怎樣才能確保我找到正確的主機而不僅僅是綁定的一些問題?
嘗試將"localhost"
更改為"127.0.0.1"
,它應該按預期工作。 手冊中詳細介紹了此行為:
UNIX套接字和命名管道不能在網絡上運行,因此如果指定localhost以外的主機,則將使用TCP,如果需要,可以指定奇數端口(默認端口為3306):
db=_mysql.connect(host="outhouse", port=3307, passwd="moonpie", db="thangs")
如果您真的需要,可以通過指定完整主機名或127.0.0.1連接到具有TCP的本地主機。
mysqld是否在遠程端口22上運行? 叫我無知,但我認為你要做的是
ssh -n -N -f -L 3306:localhost:3306 remotehost
然后在本地計算機上建立MySQL連接將透明地通過隧道傳輸到目標主機。
您不能將localhost
指定為主機名,因為這表明MySQLdb應該嘗試使用UNIX套接字。 請改用主機127.0.0.1
。
如果要確保連接正常,可以使用標准的mysql客戶端。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.