Nuevo plugin de autenticación caching_sha2_password en MySQL 8

Desde la versión 8 de MySQL se incluyó un nuevo plugin de autenticación por defecto  caching_sha2_password  que sustituye al anterior plug-in mysql_native_password.

Pero... ¿Qué significa esto?

Esto implica que al crear un nuevo usuario en MySQL 8 sin especificar ningún plug-in de autenticación...

CREATE USER 'victor'@'localhost' IDENTIFIED BY 'secret';

Y al ver  el usuario creado...

SELECT user,authentication_string,plugin,host FROM mysql.user where user = 'victor';

Resulta...

+--------+--------------------------------------------+----------------+
| user   | authentication_string   | plugin                | host      |
+--------+-------------------------------------------------------------+
| victor | $A$005$>*4d@_lj+2U      | caching_sha2_password | localhost |
+--------+-------------------------------------------------------------+

Vemos que el usuario se creó bajo el metodo de autenticación caching_sha2_password.

Entonces... ¿Cúal es el problema?

A pesar de que el nuevo mecanismo caching_sha2_password ofrece mejoras notables en cuanto a mayor rapidez y seguridad en comparación con mysql_native_password, tiene la desventaja de que mysqli de php aún no ofrece soporte para ello. Por lo tanto generará conflictos  en la autenticación en el servidor MySQL desde una aplicación php, por ejemplo WordPress o phpMyaAdmin.

Para evitar este problema creamos el usuario indicando el plug-in.

CREATE USER 'victor'@'localhost' IDENTIFIED  WITH mysql_native_password  BY 'secret';

Con esto  le decimos a MySQL que para el nuevo usuario que vamos a crear utilizaremos el plug-in mysql_native_password, con esto evitamos el molesto error de método de autenticación desconocido.