【问题标题】:MySQL denies to work with Django in UbuntuMySQL 拒绝在 Ubuntu 中使用 Django
【发布时间】:2018-12-18 04:44:34
【问题描述】:

我正在 Django 中尝试一个简单的博客项目,使用 MySQL 作为数据库服务器并安装了 mysqlclient 适配器。在 settings.py 中进行了如下更改:

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

但是当我在启动 mysql 服务后输入“python manage.py migrate”时,它给了我一个看起来像这样的错误:

django.db.utils.OperationalError: (2006, "Authentication plugin 'caching_sha2_password' cannot be loaded: /home/sandip/anaconda3/lib/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory")

我使用 Ubuntu 作为我的操作系统。当我恢复到 Postgresql 并在 settings.py 文件中进行更改时,它工作正常。但是当我编写简单的 Python 桌面应用程序时,我可以使用 MySQL。当我用 Django 尝试时出现问题。请帮忙。

【问题讨论】:

标签: mysql django


【解决方案1】:

这是因为在新的 maria 版本中,root 用户不允许通过密码登录,除非您更改 mysqld 配置。所以我建议为你的项目创建一个特定的用户。

尝试改变mysql中的用户认证方式:

ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password';

或创建一个新用户:

GRANT ALL on database.* to 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password';
flush privileges;

或者您可以在这里找到解决方案: Authentication plugin 'caching_sha2_password' cannot be loaded

【讨论】:

  • 如果您不介意我对您的解决方案有 2 个问题:您所说的 mysql_native_password 是什么意思? Ans 在创建新用户时,命令不应该在 GRANT ALL 之后的命令中有权限关键字吗?
猜你喜欢
  • 2021-10-07
  • 2019-03-05
  • 2011-09-27
  • 2013-07-13
  • 2013-11-15
  • 2016-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多