我正在尝试使用PyMySQL连接到本地主机上的MySQL:
import pymysql
conn = pymysql.connect(db='base', user='root', passwd='pwd', host='localhost')
但是(在Python2.7和Python3.2上)我得到了一个错误:
socket.error: [Errno 111] Connection refused
pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' (111)")
我确信mysqld正在运行,因为我可以使用mysql命令或phpMyAdmin进行连接。此外,我可以在Python 2上使用MySQLdb连接,代码几乎相同:
import MySQLdb
conn = MySQLdb.connect(db='base', user='root', passwd='pwd', host='localhost')
似乎问题出在PyMySQL方面,而不是MySQL,但我不知道如何解决它。
我用
127.0.0.1
替换localhost
,并将密码更改为MYSQL数据库密码,解决了这个问题,如下所示似乎将
localhost
更改为127.0.0.1
可以修复错误,至少在我的配置中是这样。 如果没有,我会在tcp sockets connection
中查找错误,当然,还会在pymysql
错误跟踪中将其作为错误发布。两个猜测:
运行
mysqladmin variables | grep socket
获取套接字的位置,并尝试设置如下连接:运行
mysqladmin variables | grep port
并验证端口是否为3306。如果没有,您可以手动设置端口,如下所示:相关问题 更多 >
编程相关推荐