MySQL否认在Ubuntu中使用Django



我正在Django中尝试一个简单的博客项目,使用MySQL作为数据库服务器,并安装了mysqlclient适配器。更改设置.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尝试它时,问题出现了。请帮忙。

这是因为在新的maria版本中,根用户不允许通过密码登录,除非您更改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;

或者您可以在这里找到解决方案:身份验证插件';caching_sha2_password';无法加载

最新更新