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,%
olocalhost
).<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.
- 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 comovim
onano
:vim /etc/mysql/mysql.conf.d/mysqld.cnf
- Ubicación común:
- Busca la línea:
[mysqld]
default-authentication-plugin = mysql_native_password
- 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.