我创建了一个虚拟环境并安装了以下内容:
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然后上面的设置就够了......这里有什么不对???
答案 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