python - 无法在 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
。
解决方案
推荐阅读
- java - 如何定义另一个类在 MainActivity 中调用的方法?
- android - 芯片 setoncheckedchangelistener 字符串比较返回 false
- mysql - 我只想显示 MySQL 数据库中今天和未来 30 天之间的日期
- java - (Antlr)如何在终端中运行此输入并获取输出?
- python - Django 没有为 AnonymousUser- Django rest api 提供数据库表示
- react-native - react-native run-android无法在空对象上获取属性'packageName'
- python - 从 glob.glob("D\\*.txt") 获取 r"D:\test.txt" 或 "D:\\test.txt"
- c - 将 void 转换为具有相同格式的结构
- c# - ListView 项目未完全从 SQLite 数据库加载 [Xamarin.Forms]
- anchor - 使用 php 获取点击的锚文本到引用页面