GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo solucionarlo:mysqlnd no puede conectarse a MySQL 4.1+ usando la antigua autenticación insegura

Después de actualizar un servidor PHP de PHP 5.3.3 a PHP 5.6.x, trabajando con MySQL Server 5.1.x en un cuadro simple de CentOS 6.x de 64 bits, hubo algunas aplicaciones web nuevas que mostraban este error de conexión de mysqlnd: mysqlnd no puede conéctese a MySQL 4.1+ usando la antigua autenticación insegura

Este fue el error completo y exacto:

mysqlnd no puede conectarse a MySQL 4.1+ usando la antigua autenticación insegura. Utilice una herramienta de administración para restablecer su contraseña con el comando SET PASSWORD =PASSWORD('su_contraseña_existente'). Esto almacenará un valor hash nuevo y más seguro en mysql.user. Si este usuario se usa en otros scripts ejecutados por PHP 5.2 o anterior, es posible que deba eliminar el indicador de contraseñas antiguas de su archivo my.cnf

Esto sucede porque el nuevo cliente mysqlnd php se niega a trabajar con contraseñas de estilo antiguo de MySQL. Por lo tanto, incluso si tiene old_passwords=1, esto no funcionará para estas nuevas aplicaciones web, que requieren una seguridad de hash de contraseña más fuerte.

¿Cómo puedo solucionar el error mysqlnd no puede conectarse a MySQL 4.1+ usando la antigua autenticación insegura?

Este error se puede solucionar fácilmente si sigue los siguientes pasos:

Edite el archivo de configuración principal de MYSQL:

nano -w /etc/my.cnf

Cambiar:

old_passwords=1

a

old_passwords=0

Aplicar los cambios:

service mysqld restart

Conéctese a la consola MySQL como root:

mysql -u root -p

Ahora restablezca la contraseña de usuario para usar el nuevo hash:

SET PASSWORD FOR 'mysqluser'@'localhost'=PASSWORD('passwordhere');
flush privileges;

Reemplace 'mysqluser' y 'passwordhere' con su nombre de usuario y contraseña reales.

Ahora regrese a /etc/my.cnf y revierta los cambios realizados anteriormente, configure:

old_password=1

Reinicie MySQL para aplicar los cambios:

service mysqld restart

Listo, ahora su usuario debería usar el hash de contraseña de MySQL más fuerte.
Esto se puede verificar desde la consola de MySQL usando este comando:

mysql> SELECT user, Length(Password) FROM mysql.user;
+------------------+------------------+
| user | Length(Password) |
+------------------+------------------+
| root | 16 |
| forum_user | 16 |
| user2 | 41 |
| lorex | 41 |
| m3user | 16 |

Si ve '41', entonces ese usuario está usando el nuevo hash y '16' significa que está usando el antiguo hash.

Listo, en este punto, su error mysqlnd no puede conectarse a MySQL 4.1+ usando la antigua autenticación insegura debería corregirse y debería poder trabajar normalmente con sus aplicaciones web.

Cómo solucionar:mysqlnd no puede conectarse a MySQL 4.1+ usando la antigua autenticación insegura was last modified:febrero 7th, 2017 by Esteban Borges
Cent OS
  1. ¿Cómo configurar MySQL Master-Slave usando nodos CentOS 7?

  2. Cómo crear una base de datos en MySQL usando la línea de comandos

  3. Cómo hacer una copia de seguridad y restaurar la base de datos MySQL usando la línea de comandos

  4. Cómo conectarse de forma remota a MySQL

  5. Cómo conectar un host remoto usando el comando ssh

Cómo configurar una base de datos utilizando el asistente de base de datos MySQL

Cómo instalar la última versión de MySQL 8 en Ubuntu

Cómo instalar la última versión de MySQL 8 en Debian 11

Cómo instalar la última versión de MySQL 8 en Ubuntu 20.04

La aplicación no puede conectarse a la base de datos

Cómo conectarse a MySQL usando PHP