Python OperationalError: (2002, "无法通过套接字'/var/run/mysqld/mysqld.sock' (2) 连接到本地 MySQL 服务器")

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/18150858/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-19 09:59:32  来源:igfitidea点击:

OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")

pythonmysqldjangomysql.sock

提问by robert

when connecting to mysql database in Django ,I get the error.

在 Django 中连接到 mysql 数据库时,出现错误。

  1. I'm sure mysql server is running.

  2. /var/run/mysqld/mysqld.sock doesn't exist.

  3. When I run $ find / -name *.sock -type s, I only get /tmp/mysql.sock and some other irrelevant output.

  4. I added socket = /tmp/mysql.sockto /etc/my.cnf. And then restared mysql, exited django shell, and connected to mysql database. I still got the same error.

  1. 我确定 mysql 服务器正在运行。

  2. /var/run/mysqld/mysqld.sock 不存在。

  3. 当我运行时$ find / -name *.sock -type s,我只得到 /tmp/mysql.sock 和其他一些不相关的输出。

  4. 我添加socket = /tmp/mysql.sock到/etc/my.cnf。然后重启mysql,退出django shell,连接mysql数据库。我仍然遇到同样的错误。

I searched a lot, but I still don't know how to do.

我搜索了很多,但我仍然不知道该怎么做。

Any help is greate. Thanks in advance.

任何帮助都很棒。提前致谢。

Well, I just tried some ways. And it works. I did as follows.

嗯,我只是尝试了一些方法。它有效。我做了如下。

  1. Add socket = /tmp/mysql.sock.Restart the mysql server.
  2. ln -s /tmp/mysql.sock /var/lib/mysqld/mysqld.sock
  1. 添加socket = /tmp/mysql.sock.Restart mysql 服务器。
  2. ln -s /tmp/mysql.sock /var/lib/mysqld/mysqld.sock

I met an another problem today. I can't login to mysql. I'm newbie to mysql. So I guess mysql server and client use the same socket to communicate. I add socket = /var/mysqld/mysqld.sockto [mysqld] [client] block in my.cnf and it wokrs.

我今天遇到了另一个问题。我无法登录到 mysql。我是 mysql 的新手。所以我猜mysql服务器和客户端使用相同的套接字进行通信。我socket = /var/mysqld/mysqld.sock在 my.cnf 中添加到 [mysqld] [client] 块并且它起作用了。

采纳答案by Md. Ibrahim

Use "127.0.0.1", instead of "localhost"

使用“127.0.0.1”,而不是“localhost”

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

回答by Can Okan Ta?k?ran

in flask, you may use that

在烧瓶中,您可以使用它

app=Flask(__name__)

app=Flask(__name__)

app.config["MYSQL_HOST"]="127.0.0.1
app.config["MYSQL_USER"]="root"...

app.config["MYSQL_HOST"]="127.0.0.1
app.config["MYSQL_USER"]="root"...