sql >> Base de Datos >  >> RDS >> Mysql

No se puede conectar a MySQL 4.1+ usando la autenticación anterior

editar:esto solo se aplica si tiene el control del servidor MySQL ... si no lo está, eche un vistazo a Método de hash de contraseña de Mysql antiguo frente a nuevo

Primero verifique con la consulta SQL

SHOW VARIABLES LIKE 'old_passwords'

(en el cliente de línea de comandos de MySQL, HeidiSQL o cualquier interfaz que desee) si el servidor está configurado para usar el esquema de contraseña anterior de forma predeterminada. Si esto devuelve old_passwords,Off simplemente tiene entradas de contraseña antiguas en el user mesa. El servidor MySQL utilizará la antigua rutina de autenticación para estas cuentas. Simplemente puede establecer una nueva contraseña para la cuenta y se utilizará la nueva rutina.

Puede comprobar qué rutina se utilizará echando un vistazo a mysql.user mesa (con una cuenta que tiene acceso a esa mesa)

SELECT `User`, `Host`, Length(`Password`) FROM mysql.user

Esto devolverá 16 para cuentas con contraseñas antiguas y 41 para cuentas con nuevas contraseñas (y 0 para cuentas sin contraseña, es posible que desee encargarse de eso también).
Use las herramientas de administración de usuarios de la interfaz de MySQL (si las hay) o

SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword');
FLUSH Privileges;

(reemplace User y Host con los valores que obtuvo de la consulta anterior). Luego verifique la longitud de la contraseña nuevamente. Debería ser 41 ahora y su cliente (por ejemplo, mysqlnd) debería poder conectarse al servidor.

consulte también la documentación de MySQL:* http://dev. mysql.com/doc/refman/5.0/en/old-client.html
* http://dev.mysql. com/doc/refman/5.0/en/password-hashing.html
* http://dev.mysql. com/doc/refman/5.0/en/set-password.html