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
OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
提问by robert
when connecting to mysql database in Django ,I get the error.
在 Django 中连接到 mysql 数据库时,出现错误。
I'm sure mysql server is running.
/var/run/mysqld/mysqld.sock doesn't exist.
When I run
$ find / -name *.sock -type s
, I only get /tmp/mysql.sock and some other irrelevant output.I added
socket = /tmp/mysql.sock
to /etc/my.cnf. And then restared mysql, exited django shell, and connected to mysql database. I still got the same error.
我确定 mysql 服务器正在运行。
/var/run/mysqld/mysqld.sock 不存在。
当我运行时
$ find / -name *.sock -type s
,我只得到 /tmp/mysql.sock 和其他一些不相关的输出。我添加
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.
嗯,我只是尝试了一些方法。它有效。我做了如下。
- Add
socket = /tmp/mysql.sock
.Restart the mysql server. ln -s /tmp/mysql.sock /var/lib/mysqld/mysqld.sock
- 添加
socket = /tmp/mysql.sock
.Restart mysql 服务器。 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.sock
to [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"
...