Cómo Resolver el Error de MySQL Relacionado con el Plugin mysql_native_password

Artículos Guías Manuales Sistemas Linux Windows Binario 0

Cuando MySQL genera la advertencia:

[Warning] [MY-013360] [Server] Plugin mysql_native_password reported: ''mysql_native_password' is deprecated and will be removed in a future release. Please use caching_sha2_password instead'

Es porque el plugin mysql_native_password está en proceso de ser obsoleto y se recomienda cambiar al plugin caching_sha2_password. Este artículo te guiará para corregir el problema paso a paso.

Paso 1: Identificar los Usuarios que Usan mysql_native_password

Primero, verifica qué usuarios están utilizando el plugin obsoleto con la siguiente consulta:

SELECT user, host, plugin FROM mysql.user WHERE plugin = 'mysql_native_password';

El resultado mostrará algo similar a:

+-------------------+-----------+-----------------------+
| user | host | plugin |
+-------------------+-----------+-----------------------+
| user1 | % | mysql_native_password |
| user2 | % | mysql_native_password |
| user3 | % | mysql_native_password |
| root | % | mysql_native_password |
| root | localhost | mysql_native_password |
+-------------------+-----------+-----------------------+

En este caso, los usuarios listados necesitan ser migrados al plugin recomendado.

Paso 2: Cambiar el Plugin de Autenticación de Cada Usuario

Por cada usuario identificado, actualiza su plugin de autenticación ejecutando la siguiente consulta:

ALTER USER '<USERNAME>'@'<HOST>' IDENTIFIED WITH caching_sha2_password BY '<PASSWORD>';

Reemplaza:

  • <USERNAME>: El nombre del usuario.
  • <HOST>: El host correspondiente (por ejemplo, % o localhost).
  • <PASSWORD>: La nueva contraseña para el usuario o su contraseña si la tenemos.

Por ejemplo, para cambiar al usuario user1:

ALTER USER 'user1'@'%' IDENTIFIED WITH caching_sha2_password BY 'new_secure_password';

Haz esto para cada usuario listado en el resultado anterior.

Paso 3: Verificar Conexiones de los Usuarios

Una vez cambiados todos los usuarios, prueba que puedan conectarse a sus esquemas correctamente. Si alguna aplicación utiliza estos usuarios, verifica que no haya problemas de autenticación.

Paso 4: Modificar el Archivo de Configuración de MySQL

En el archivo de configuración de MySQL, verifica si está configurado el plugin predeterminado como mysql_native_password. Este ajuste debe eliminarse o comentarse.

  1. Abre el archivo de configuración:
    • Ubicación común: /etc/mysql/mysql.conf.d/default-auth-override.cnf o /etc/mysql/mysql.conf.d/mysqld.cnf.

    Usa un editor como vim o nano:

    vim /etc/mysql/mysql.conf.d/mysqld.cnf
  2. Busca la línea:

    [mysqld]
    default-authentication-plugin = mysql_native_password
  3. Comenta o elimina esta línea:

    [mysqld]
    #default-authentication-plugin = mysql_native_password

Paso 5: Reiniciar MySQL

Finalmente, reinicia el servicio de MySQL para aplicar los cambios:

sudo systemctl restart mysql

Verificación Final

Para confirmar que todos los usuarios están utilizando caching_sha2_password, ejecuta nuevamente:

SELECT user, host, plugin FROM mysql.user WHERE plugin = 'caching_sha2_password';

El resultado debería listar los usuarios actualizados.

Conclusión

Con estos pasos, habrás migrado todos los usuarios al plugin caching_sha2_password y eliminado la configuración de mysql_native_password, resolviendo la advertencia de MySQL y asegurando la compatibilidad futura.