我正在尝试使用PyMySQL连接到本地主机上的MySQL:
import pymysql conn = pymysql.connect(db='base', user='root', passwd='pwd', host='localhost') 但是(在Python 2.7和Python 3.2上)我得到了错误:
socket.error:[Errno 111]连接被拒绝
pymysql.err.OperationalError:(2003年,“无法连接到'localhost'(111)上的MySQL服务器”)
我确定mysqld正在运行,因为我可以使用mysqlcommand或phpMyAdmin 进行连接。而且,我可以在Python 2上使用MySQLdb使用几乎相同的代码进行连接:
import MySQLdb conn = MySQLdb.connect(db='base', user='root', passwd='pwd', host='localhost') 看来问题出在PyMySQL方面,而不是MySQL,但我不知道如何解决。
两个猜测:
运行mysqladmin variables | grep socket以获取套接字所在的位置,然后尝试像这样建立连接:
pymysql.connect(db='base', user='root', passwd='pwd', unix_socket="/tmp/mysql.sock") 运行mysqladmin variables | grep port并验证端口为3306。如果不是,则可以手动设置端口,如下所示:
pymysql.connect(db='base', user='root', passwd='pwd', host='localhost', port=XXXX)来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。