(2059, “Plugin de autenticação 'caching_sha2_password'”) ao executar o servidor conectado ao banco de dados MYSQL no Django
Quero configurar meu projeto django para conectá-lo ao banco de dados em MYSQL Eu criei comworkbench 8.0,
e, em seguida, desejo executar o servidor executando
python manage.py runserver
do prompt de comando do anaconda,
para que eu possa usar a interface do Django para visualizar e alterar dado
Observe que não quero fazer o downgrade do ambiente de trabalho 8.0.
Estas são as etapas que eu fiz:
From anaconda prompt:
pip install mysqlclient
Na pasta do meu projeto, em settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'schema_meta',
'USER': 'root',
'PASSWORD': '<mypassword>',
'HOST': '127.0.0.1',
'PORT': '3306',
},
}
Dentro do diretório do servidor mysql, abro o cnf.ini e insiro a seção [client]:
[client]
database=schema_meta
host=127.0.0.1
user=root
password=<mypassword>
port=3306
default-character-set = utf8
Em seguida, a partir do prompt anaconda eu corro
Python manage.py runserver
Eu obtenho erro
django.db.utils.OperationalError: (2059, "O plugin de autenticação 'caching_sha2_password' não pode ser carregado: Impossível remover o módulo específico. \ r \ n")
Então eu tento resolvê-lo seguindo este tópico:
django.db.utils.operationalError: (2059, "Plugin de autenticação 'caching_sha2_password'")
Abra o mysql workbench e executo esta consulta:
delete from mysql.user
where user='root'
and host = '127.0.0.1';
flush privileges;
CREATE USER 'root'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY '<mypassword>';
E então, no arquivo my.ini, altero
default-authentication-plugin= caching_sha2_password
Co
default-authentication-plugin=mysql_native_password
Finalmente, a partir do prompt do anaconda:
python manage.py runserver
Mas novamente eu recebo
django.db.utils.OperationalError: (2059, "O plugin de autenticação 'caching_sha2_password' não pode ser carregado: Impossível remover o módulo específico. \ r \ n")
Agora, o que há de errado? Por que ele não conseguiu as alterações no método de autenticação?
Para verificar se não há outros erros, no mysql workbench, na primeira exibição "home", clico com o botão direito do mouse no meu banco de dados, abro "edit connection", clico em "test connection" e o software diz que a conexão foi bem sucedida.
mysql workbench dizendo que a conexão foi estabelecida com sucesso
lém disso, eu queria verificar se o problema estava nas minhas configurações do Django. Então, no prompt do anaconda, eu corro
pip install pymysql
Em seguida, nas pastas do projeto, criei um script “connect_to_mysql.py”, com o seguinte códig
import pymysql.cursors
mydb = pymysql.connect(host='127.0.0.1',
user='root',
password='<mypassword>',
db='schema_meta',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
print(mydb)
e isso parece funcionar bem, desde quando eu corro
connect_to_mysql.py
de anaconda, eu recebo
bjeto @ pymysql.connections.Connection em 0x000002013F2851D0
cho que significa "conexão estabelecida com sucesso"
E apenas para ter certeza de que o problema está no mysql (eu acho), criei um arquivo “connect_to_mysql_2.py” com este códig
import mysql.connector
mydb = mysql.connector.connect(user='root', password='<mypassword>',
host='127.0.0.1', database='meta_schema')
print(mydb)
E quando executo o anaconda, novamente recebo
"O plugin de autenticação '{0}' não é suportado" .format (plugin_name)) mysql.connector.errors.NotSupportedError: O plugin de autenticação 'caching_sha2_password' não é suportado
Isso significa que eu não consertei nada trabalhando no mysql workbench e no arquivo my.in
Como posso conectar meu Django ao meu banco de dados mysql e ao servidor em execuçã
Existe uma maneira de estabelecer o conector do servidor usando o conector pymysql em vez desse conector mysq