django+xampp(2002,“无法通过socket'/tmp/mysql.sock'(2)”连接到本地mysql服务器)

yk9xbfzb  于 2021-06-19  发布在  Mysql
关注(0)|答案(5)|浏览(370)

我按照这个教程用mysql构建了一个django应用程序。
我正在为mac使用xampp虚拟机。我为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,“无法通过socket'/tmp/mysql.sock'(2)”连接到本地mysql服务器)
谢谢你的帮助!

hiz5n14c

hiz5n14c1#

这可能是因为安装了xampp vm,而不是本地xampp。卸载xampp vm并安装xampp。

e0bqpujr

e0bqpujr2#

只要改变 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',
    }
}
dgjrabp2

dgjrabp23#

我在mysql的最新版本中也遇到了同样的错误,所以我把mysql降到了5.7.0,它运行得很好。

cgyqldqp

cgyqldqp4#

我会尝试将您的主机从“localhost”更改为“127.0.0.1”。这通常会纠正我这边的错误。

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

eblbsuwk5#

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

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

相关问题