Quando tentei atualizar do PHP 7.3 para o PHP 7.4, recebi este erro:
Resposta inesperada do servidor ao executar cacheing_sha2 auth 109
A meu ver, isso indica que o MySQLi do PHP 7.4 está tentando usar o caching_sha2_password
plugin. Este artigo indica que o PHP MySQLi não suporta o plug-in (também sugere suporte futuro para ele), mas como o PHP 7.4 é novo e parece estar tentando usá-lo, acho que deve funcionar. Além disso, a mensagem de erro é diferente do que se não fosse suportada ( acesso negado x método de autenticação desconhecido ).
Então mudei meu plugin de autenticação MySQL para caching_sha2_password
(usando a mesma senha de antes):
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '';
FLUSH PRIVILEGES;
Mas isso causou outro erro:
Acesso negado para o usuário 'root' @ 'localhost' (usando a senha: YES).
Voltando ao PHP 7.3 e mysql_native_password
ele funciona novamente.
Usei a mesma senha para os dois plugins, o mesmo site e apliquei as mesmas alterações do php.ini. No entanto, não alterei nenhuma mysqli
configuração. Os logs do MySQL não mostram nada, o log do apache2 mostra apenas a mensagem de erro 'Acesso Negado'.
O php7.4-mysqli tem suporte caching_sha2_password
? SIM
Por que minha senha está sendo negada e como posso corrigi-la? Veja minha pergunta de acompanhamento
Além disso, se o MySQLi ainda não suportar o plugin: Como posso usá mysql_native_password
-lo?
Access Denied
e depois voltar para você.