You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

《The Ultimate Django 3》教程执行migrate遇MySQL连接错误的解决分享

解决Django连接MySQL时的OperationalError (2002) 错误

错误场景与信息

在跟着Mosh Hamedani的《The Ultimate Django 3》教程「Running Background Tasks, 5-Celery and Windows」章节操作时,严格遵循PDF步骤执行,最终运行python manage.py migrate时触发以下错误:

django.db.utils.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (13)")

解决方案(感谢codewithmosh论坛用户nicholas.allarick提供)

  • 修改项目根目录下settings.py中的数据库配置:
    将DATABASES配置里的HOST字段从默认值(或空)改为127.0.0.1,同时确保PORT设置为MySQL默认的3306(如果未指定的话)。示例配置如下:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': '你的数据库名',
            'USER': '你的MySQL用户名',
            'PASSWORD': '你的MySQL密码',
            'HOST': '127.0.0.1',  # 替换原来的localhost或空值
            'PORT': '3306',
        }
    }
    
  • 保存配置后,重新运行python manage.py migrate即可解决该问题。

原因说明

Windows环境下的MySQL默认不使用Unix socket文件进行连接,而是通过TCP/IP协议通信。当Django尝试通过Unix socket路径连接时,就会触发该错误,改为指定IP地址即可让Django使用TCP/IP方式连接MySQL。


内容的提问来源于stack exchange,提问作者Sanjar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 09:27:22