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

Django从SQLite迁移至MySQL失败求助

Django替换SQLite为MySQL后无法启动的排查方案

以下是针对问题的具体排查步骤:

  • 确认MySQL服务状态
    先检查MySQL服务是否正在运行:

    • Linux系统执行:systemctl status mysql,如果未运行,用systemctl start mysql启动
    • Windows系统打开「服务」面板,找到MySQL服务,确认状态为「正在运行」
  • 测试数据库连接有效性
    直接用MySQL命令行工具测试连接,执行:

    mysql -u admin -p -h 127.0.0.1 -P 3306 auth
    

    输入密码后如果无法连接,说明用户权限或数据库存在问题:

    • 确认数据库auth已创建:登录MySQL后执行SHOW DATABASES;查看
    • 重新授权用户:执行
      GRANT ALL PRIVILEGES ON auth.* TO 'admin'@'127.0.0.1' IDENTIFIED BY 'password';
      FLUSH PRIVILEGES;
      
      注意:127.0.0.1是TCP连接方式,和localhost的socket连接权限是分开的,必须单独授权
  • 修正settings.py的语法问题
    你的配置中注释写法错误,Python中"""是多行字符串而非注释,会导致字典语法错误,修正后配置如下:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'auth',
            'USER': 'admin',
            'PASSWORD': 'password',
            'HOST': '127.0.0.1',  # localhost not working (Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2))
            'PORT': '3306',
        }
    }
    
  • 检查mysqlclient兼容性
    确认mysqlclient版本与Django版本匹配:

    • 执行pip show mysqlclient查看当前版本
    • Django 4.x+要求mysqlclient 2.0.3以上,版本不兼容时执行pip install mysqlclient==2.2.0(或对应兼容版本)重新安装
  • 查看详细错误日志
    启动服务器时增加日志 verbosity 级别,获取更详细的错误信息:

    python manage.py runserver --verbosity 3
    

    根据日志中的具体报错信息定位问题(比如权限不足、端口占用、数据库不存在等)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 08:34:51