Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django Can';t通过套接字连接到本地MySQL服务器'/var/run/mysqld/mysqld.sock_Python_Mysql_Django - Fatal编程技术网

Python django Can';t通过套接字连接到本地MySQL服务器'/var/run/mysqld/mysqld.sock

Python django Can';t通过套接字连接到本地MySQL服务器'/var/run/mysqld/mysqld.sock,python,mysql,django,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',

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

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,“无法通过套接字连接到本地MySQL服务器'/var/run/mysqld/mysqld.sock'(2)”)

我不知道这里怎么了。。。 我找过了。。。大多数情况下,我发现如果我使用virtualenvironment,那么上面的设置就足够了。。。这里出了什么问题?

安装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
的地址。

你的主机应该改为“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

你确定mysql正在运行吗?另外,您确定sock位于/var/run/mysqld/mysqld.sock吗。尝试在控制台中运行
服务mysqld restart
。我正要询问mysql是否正在运行,但代码定义了一个端口,这意味着Django根本不应该查看套接字文件……当我为mysqld restart提供服务时,以及当我查看/var/run/where's nothing时,它会给出错误mysqld:unrecogned servicemysqld@Fizzadar它查找套接字,因为
localhost
告诉它,如果要使用tcp ip,则必须将其更改为
127.0.0.1