[solución]: error HY000 2054 caching_sha2_password al conectar a base de datos MySQL 8
Cómo solucionar el error de conexión a una base de datos MySQL 8: The server requested authentication method unknown to the client [caching_sha2_password] in …, o también en otros clientes: (HY000/2054): The server requested authentication method unknown to the client in…, o incluso Authentication plugin ‘caching_sha2_password’ cannot be loaded.
Este inconveniente aparece en proyectos como magento, wordpress o en mi caso laravel, la causa es ocacionada a que mysql 8 inplementa nuevos portocolos de seguridad, la solución se encuantra en habilitar una directiva en el archivo my.cnf
default-authentication-plugin=mysql_native_password.
Dependiendo en donde tengas instalado mysql se puede encontrar el archivo my.conf:
// LInux
/etc/my.cnf
// Mac brew
/usr/local/etc/my.cnf
// después de la directiva [mysqld] se debe agregar el nuevo parámetro
// Si ya existe el parámetro se debe modificar
default-authentication-plugin=mysql_native_password
Una vez hecho el cambio, reiniciaremos mysql
// Ubuntu
service mysql restart
// Brew Mac
brew services restart mysql
Lo que resta es actualizar la contraseña del usuario, puedes ser el usuario root si la configuración de mysql es la establecida o cualquier otro usuario que se haya configurado.
// iniciamos mysql
mysql -u root
// Actualizamos la contraseña, puede ser la misma contraseña
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
exit;
Una vez actualizada la contraseña ya se podrá acceder a la base de datos en tu proyecto.