【问题标题】:Django + XAMPP on Mac (2002, "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)")Mac 上的 Django + XAMPP (2002, "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)")
【发布时间】:2019-04-18 06:17:05
【问题描述】:

我正在按照this 教程使用 MySQL 构建 Django 应用程序。

我正在为 Mac 使用 XAMPP-VM。我为 Django 设置了我的数据库设置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'djangoproject',
        'USER': 'root',
        'PASSWORD': '',
        'HOST': 'localhost',
        'PORT': '8080',
    }
}

我已经在 XAMPP 上启动了 MySQL,但是当我运行 python manage.py migrate 时,我得到:

django.db.utils.OperationalError: (2002, "Can't connect to local MySQL 服务器通过套接字'/tmp/mysql.sock' (2)")

感谢您的帮助!

【问题讨论】:

标签: php mysql django xampp xampp-vm


【解决方案1】:

只需将 HOSTlocalhost 更改为 ip 127.0.0.1。这将解决您的问题。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'djangoproject',
        'USER': 'root',
        'PASSWORD': '',
        'HOST': '127.0.0.1',
        'PORT': '8080',
    }
}

【讨论】:

    【解决方案2】:

    我会尝试将您的主机从“localhost”更改为“127.0.0.1”。这通常会在我结束时纠正它。

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'djangoproject',
            'USER': 'root',
            'PASSWORD': '',
            'HOST': '127.0.0.1',
            'PORT': '8080',
        }
    }
    

    【讨论】:

      【解决方案3】:

      mysql 客户端默认尝试通过 /tmp/mysql.sock 进行连接。您只需使用符号链接将其指向 XAMPP 的套接字。

      ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock
      

      【讨论】:

      • 你能解释一下吗?
      【解决方案4】:

      我在 mysql 最新版本中遇到了同样的错误,所以我降级到 mysql 5.7.0 并且它工作正常。

      【讨论】:

        【解决方案5】:

        这可能是由于安装了 XAMPP-VM 而不是本地 XAMPP。卸载 XAMPP-VM 并安装 XAMPP。

        【讨论】:

          猜你喜欢
          • 2014-10-16
          • 2021-03-31
          • 2023-03-20
          • 2020-08-11
          • 1970-01-01
          • 2012-07-11
          • 2017-08-01
          • 2016-08-17
          • 2018-05-15
          相关资源
          最近更新 更多