PyMySQL无法连接到本地主机上的MySQL

我正在尝试使用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,但我不知道如何解决。

回答:

两个猜测:

  1. 运行mysqladmin variables | grep socket以获取套接字所在的位置,然后尝试像这样建立连接:

    pymysql.connect(db='base', user='root', passwd='pwd', unix_socket="/tmp/mysql.sock")

  2. 运行mysqladmin variables | grep port并验证端口为3306。如果不是,则可以手动设置端口,如下所示:

    pymysql.connect(db='base', user='root', passwd='pwd', host='localhost', port=XXXX)

以上是 PyMySQL无法连接到本地主机上的MySQL 的全部内容, 来源链接: utcz.com/qa/430691.html

回到顶部