Cuando intenté actualizar de PHP 7.3 a PHP 7.4, recibí este error:
Respuesta inesperada del servidor al hacer caching_sha2 auth 109
A mi entender, esto indica que PHP 7.4 MySQLi está intentando utilizar el caching_sha2_password
complemento. Este artículo señala que PHP MySQLi no es compatible con el complemento (también sugiere soporte futuro para él), pero dado que PHP 7.4 es nuevo y parece estar tratando de usarlo, supongo que debería funcionar. Además, el mensaje de error es diferente que si no fuera compatible ( acceso denegado versus método de autenticación desconocido ).
Así que cambié mi complemento de autenticación MySQL a caching_sha2_password
(usando la misma contraseña que antes):
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '';
FLUSH PRIVILEGES;
Pero esto causó otro error:
Acceso denegado para el usuario 'root' @ 'localhost' (usando la contraseña: YES).
Volviendo a PHP 7.3 y mysql_native_password
funciona de nuevo.
Utilicé la misma contraseña para ambos complementos, el mismo sitio web y apliqué los mismos cambios en php.ini. Sin embargo, no cambié ninguna mysqli
configuración. Los registros de MySQL no muestran nada, el registro de apache2 solo muestra el mensaje de error 'Acceso denegado'.
¿Php7.4-mysqli tiene soporte para caching_sha2_password
? SI
¿Por qué se niega mi contraseña y cómo puedo solucionarla? Ver mi pregunta de seguimiento
Además, si MySQLi aún no es compatible con el complemento: ¿Cómo puedo usarlo mysql_native_password
?
Access Denied
y luego volveré a ti.