求助:django.db.utils.OperationalError(2002)无法连接127.0.0.1(10061)
解决Django启动时的数据库连接错误(2002, "Can't connect to server on '127.0.0.1' (10061)")
- 检查数据库服务状态
- 若使用MySQL:按下Win+R输入
services.msc打开服务管理器,找到MySQL服务,确认其处于“正在运行”状态,未启动则右键选择“启动”。 - 若使用MariaDB:同样在服务管理器中找到对应服务并启动。
- 若使用MySQL:按下Win+R输入
- 核对Django数据库配置
打开项目根目录的settings.py,定位到DATABASES配置段,确认以下参数:HOST是否为'127.0.0.1'(若原配置是'localhost',可尝试替换为'127.0.0.1',避免MySQL套接字连接问题)PORT是否与数据库监听端口一致(MySQL默认是3306,确保未被修改)USER和PASSWORD是否正确,无拼写错误
- 检查数据库端口占用情况
- Windows:打开命令提示符,执行
netstat -ano | findstr :3306,查看端口是否被其他程序占用。若是,关闭占用程序或修改数据库监听端口,同步更新settings.py的PORT参数。 - Linux/macOS:执行
lsof -i :3306排查端口占用,后续操作同上。
- Windows:打开命令提示符,执行
- 确认数据库用户连接权限
登录数据库,执行SELECT user, host FROM mysql.user;,查看你的数据库用户对应的host是否为'%'或'127.0.0.1'。若仅为localhost,可执行以下命令授权:
替换命令中的GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_user'@'127.0.0.1' IDENTIFIED BY 'your_password'; FLUSH PRIVILEGES;your_database_name、your_user、your_password为实际信息。 - 重启数据库服务
若服务启动异常,重启可解决问题:- Windows:在服务管理器右键数据库服务选择“重启”,或执行命令
net stop mysql && net start mysql - Linux:执行
sudo systemctl restart mysql
- Windows:在服务管理器右键数据库服务选择“重启”,或执行命令
内容的提问来源于stack exchange,提问作者Supriya Ranjan
相关产品推荐
相关产品推荐

