25

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

  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数据库。我仍然遇到同样的错误。

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

任何帮助都是巨大的。提前致谢。

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

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

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

4

4 回答 4

56

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

DATABASES = {
   'default': {
      'ENGINE': 'django.db.backends.mysql',
      'NAME': 'django',
      'USER': 'root',
      'PASSWORD': '',
      'HOST': '127.0.0.1',
      'PORT': '3306',
   }
}
于 2016-08-28T20:04:42.203 回答
1

对我来说,这很有效,可以使用 read_default_file 添加 OPTIONS 属性并为其提供 my.cnf 文件的路径

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'dbname',
        'USER': 'root',
        'PASSWORD': '',
        'HOST': 'localhost',
        'PORT': '3306',
        'OPTIONS': {
            'read_default_file': '/opt/lampp/etc/my.cnf',
        }
    }
}
于 2021-01-23T05:27:32.177 回答
0

在烧瓶中,您可以使用它

app=Flask(__name__)

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

于 2019-06-25T21:12:56.180 回答
0

我在使用Docker时将 MySQL 与 Django 连接时遇到了这个问题。

试试'PORT':'0.0.0.0'

不要使用'PORT': 'db'. 如果您尝试在 Docker 之外运行您的应用程序,这将不起作用。

于 2021-02-28T01:34:50.937 回答