我在使用python连接到本地MySQL数据库时遇到问题,但是从命令行连接没有问题。
当我尝试这样做时:
db = MySQLdb.connect(host="localhost",
user="username",
passwd="password",
db="dbname",
port=3306,
unix_socket="/var/run/mysqld/mysqld.sock")
我收到以下错误:
OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
当我没有显式传递套接字路径时,会出现相同的错误。当我使用127.0.0.1
而不是localhost
作为主机时,也会出现类似的错误(也删除了unix套接字参数):
OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1' (111)")
我知道MySQL正在运行,因为当我可以从命令行连接到数据库时,mysql -u username -p dbname
没问题。我也知道MySQL正在监听127.0.0.1
,当我运行mysql -h 127.0.0.1 -p
时,我也可以连接。我还确定它正在监听端口3306
。