1

我正在按照教程使用 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 server through socket '/tmp/mysql.sock' (2)")

谢谢您的帮助!

4

5 回答 5

1

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

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'djangoproject',
        'USER': 'root',
        'PASSWORD': '',
        'HOST': '127.0.0.1',
        'PORT': '8080',
    }
}
于 2019-03-24T16:21:18.567 回答
0

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

于 2019-08-14T16:26:51.727 回答
0

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

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'djangoproject',
        'USER': 'root',
        'PASSWORD': '',
        'HOST': '127.0.0.1',
        'PORT': '8080',
    }
}
于 2019-03-24T15:50:11.980 回答
0

默认情况下,mysql 客户端尝试通过 /tmp/mysql.sock 进行连接。你只需要用符号链接将它指向 XAMPP 的套接字。

ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock
于 2019-03-23T11:35:40.380 回答
0

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

于 2020-01-27T19:19:08.453 回答