这似乎是一个非常典型的用例,但我无法让它正常工作。我已经设置了一个ssh隧道:
ssh user@mySQLserver -NfL 3306:127.0.0.1:3306
我自己的机器上没有mysqld的实例,所以端口应该不重要(尽管我在我的机器上也尝试使用3307)。然后我试图通过mysqldb访问数据库(在python中):
import MySQLdb
db = MySQLdb.connect(user="user",passwd="passwd",host="127.0.0.1",db="theDB")
这失败了:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/site-packages/MySQLdb/__init__.py", line 81, in Connect
return Connection(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/MySQLdb/connections.py", line 187, in __init__
super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2)")
我做错了什么?