【问题标题】: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】:
只需将 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',
}
}
【解决方案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。