django无法通过套接字'/var/run/mysqld/mysqld.sock连接到本地MySQL服务器

时间:2014-12-21 13:00:44

标签: python mysql django

我创建了一个虚拟环境并安装了以下内容:

sudo apt-get install libmysqlclient-dev
sudo pip install MySQL-python

我的设置是:

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.mysql', 
    'NAME': 'DB_NAME',
    'USER': 'DB_USER',
    'PASSWORD': 'DB_PASSWORD',
    'HOST': 'localhost', 
    'PORT': '3306',

}

}

当我执行manage.py syncdb时,会出现错误2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")

我不知道这里有什么不对...... 我搜索了它...主要是我发现如果我使用virtualenvironment然后上面的设置就够了......这里有什么不对???

2 个答案:

答案 0 :(得分:9)

安装mysql服务器

sudo apt-get install mysql-server

然后为您的目的创建一个数据库:

mysql -u root -p --execute "create database DB_NAME; grant all on DB_NAME.* to DB_USER@localhost identified by 'DB_PASSWORD';"

然后你应该没事。

我应该指出,即使指定了端口,mysql搜索套接字的困惑也是因为mysql在指定localhost作为地址时默认为套接字,如果你想使用tcp / ip那么你应该把127.0.0.1这样的地址放在那里。

答案 1 :(得分:1)

您的HOST应该更改为“ 127.0.0.1”,必须启动服务,尤其是在使用xamp或lamp的情况下。

    DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'DB_NAME',
    'USER': 'DB_USER',
    'PASSWORD': 'DB_PASSWORD',
    'HOST': '127.0.0.1',
    'PORT': '3306',

} #Your HOST should change to '127.0.0.1', you must start service, especially if you are using xamp or lamp