Я пробую простой проект блога в 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',
}
}
Но когда я набираю «python manage.py migrate» после запуска службы mysql, я получаю ошибку, которая выглядит примерно так:
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, он работает нормально. Но я могу работать с MySQL, когда пишу простые настольные приложения Python. Проблема возникает, когда я пробую использовать Django. Пожалуйста помоги.
Это связано с тем, что в новых версиях 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;
или вы можете найти решение здесь: Плагин аутентификации caching_sha2_password не может быть загружен
Если вы не возражаете, у меня есть 2 вопроса о вашем решении: что вы имели в виду под mysql_native_password? Ответ при создании нового пользователя не должен содержать ключевое слово привилегий в команде после GRANT ALL?
Возможный дубликат Плагин аутентификации caching_sha2_password не может быть загружен