首页 > 解决方案 > 无法在 Python 中使用 MySQLdb 连接到 MySQL,可以从命令行连接

问题描述

我在 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我也可以连接。我也确定它正在监听 port 3306

标签: pythonmysql

解决方案


推荐阅读