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

Linux下XAMPP环境Django连接MySQL迁移报错及成因疑问

Django连接MySQL时的Socket路径问题及成因疑惑

背景与操作流程

我用Django开发已有数周,完成了2个小型项目,近期尝试将Django连接至MySQL数据库,操作步骤如下:

  • 创建新项目
  • 创建新应用并在settings.py中注册
  • 修改settings.py中的数据库配置
  • 在models.py中创建简单模型
  • 安装mysqlclient等必要依赖
  • 成功执行python manage.py makemigrations完成首次迁移

遇到的错误

执行python manage.py migrate进行二次迁移时,先后出现两类错误:

  1. 初始报错:error 111, can't connect to database
  2. 修改settings.py(添加SQL模式strict_trans_tables)后,报错变为:

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

排查与解决

  • 检查发现/var/run/mysqld/mysqld.sock路径下无对应文件,但my.cnf中配置的socket路径为/opt/lampp/var/mysql/mysql.sock且文件存在,MySQL服务正常运行
  • 最终通过在settings.py中手动指定my.cnf路径解决了问题

疑问

我近期在Linux Mint 20.3环境下做Node.js项目时,也需要手动指定socket路径(代码如下),因此疑惑该问题是否与Linux系统版本或安装方式有关,希望了解成因:

const connection = mysql.createConnection({
    host: process.env.DB_HOST,
    user: process.env.DB_USERNAME,
    password: process.env.DB_PASSWORD,
    database: process.env.DB_NAME,
    port: process.env.DB_PORT,
// THE PATH TO THE SOCKET FILE:
    socketPath: process.env.DB_SOCKET_PATH 
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 07:45:15