花了数小时找到正确的连接器以将MySQL与Django连接之后,我无法创建超级用户。错误:
django.db.utils.OperationalError :( 2059,“身份验证插件'caching_sha2_password' 无法加载:找不到指定的模块。\ r \ n“)
我尝试设置环境变量settings.configure()
,该变量表示设置已配置。数据库信息全部正确输入到settings.py
中。
Pycharm能够连接到db,这是在我的django项目中,并且pycharm中的db标题表示Django默认。我不知道这是否意味着我的Django项目已连接到该项目,但我无法创建超级用户或pycharm连接不相关。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'dbname',
'USER': 'root',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': 3306
}
}
当我尝试django-admin dbshell
时出现此错误:
django.core.exceptions.ImproperlyConfigured:请求的设置数据库,但未配置设置。在访问设置之前,您必须定义环境变量DJANGO_SETTINGS_MODULE或调用settings.configure()。
错误中提供的两种解决方案都没有肯定的结果。
尽管解决方案无法解决,但我最后一个问题被标记为重复,这个问题在某些方面也有所不同。无论如何,下面是我尝试使用旧密码安全性时发生的事情。
重新迁移后,我使用了旧式身份验证。全新且更安全的sha2身份验证解决方案将不胜感激。
答案 0 :(得分:1)
更改您的MySQL用户密码
ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
然后将密码输入Django设置文件。希望能解决您的问题。
答案 1 :(得分:0)
使用64位python并使用pip install mysqlclient
或pip install --only-binary :all: mysqlclient
安装mysqlclint正确使用空间。发生此问题的原因可能是python 32位和mysql 64位,并且您已经使用python扩展包安装了mysqlclient。
如果您使用的是MySQL 64位,那么最好使用python 64位。