mysql_connect (): el servidor solicitó un método de autenticación desconocido para el cliente [mysql_old_password] en

8

Estoy tratando de ejecutar PHP 5.4.1 (compilado desde la fuente) pero cuando intento conectarme en mysql obtengo:

Warning: mysql_connect(): The server requested authentication method unknown to the client [mysql_old_password] in

Cuando se usa PHP 5.3 / 5.2 funciona normalmente. ¿Alguna idea de qué causa este problema?

Fernando
fuente
Vea esta respuesta en otra pregunta: stackoverflow.com/a/50776838/1041047
Robin Qiu el

Respuestas:

10

Intenta leer esto: enlace

MySQL introdujo hashes de contraseña más largos en (creo) la versión 4.1, y su servidor probablemente todavía los usa (verifique los hashes de contraseña de 16 bytes en su tabla de usuario de mysql). Las versiones más nuevas usan hashes de contraseña más largos. Su servidor admite ambos, pero su cliente (php) parece admitir solo los nuevos en esta versión (y en adelante).

Si es posible, use la solución desde el enlace en la primera línea y configure su contraseña nuevamente con el nuevo hash, pero tenga cuidado, si está utilizando otros clientes (antiguos) que dependen de contraseñas antiguas, la compatibilidad podría romperse. También intente buscar soporte de contraseña antigua para MySQL en PHP, pero no estoy seguro de eso.

mulaz
fuente
9
ALTER USER 'mysqlUsername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mysqlUsernamePassword';
Robin Qiu
fuente
Esta respuesta resolvió este problema para mí serverfault.com/questions/295285/…
Vishrant
3

Sé que este es un tema antiguo, pero solucioné el problema sin tener que actualizar / degradar nada. Básicamente comenté la línea old_passwords = 1 en mi archivo my.cnf, reinicé mysql, agregué / modifiqué al usuario que finalmente obtuvo el hash de 16 bytes, luego volví y descomenté la línea old_passwords = 1, y reinicé mysql. Así que básicamente:

  • comentario old_passwords = 1
  • reiniciar mysql
  • agregar / modificar usuario
  • descomentar old_passwords = 1
  • reiniciar mysql

Así que ahí lo tiene: 1 usuario que usa un nuevo tipo de contraseña, mientras que otros usuarios tienen sus viejos tipos de contraseña. ¡Y todos pueden iniciar sesión! ;)

petru
fuente
1

Muchas veces esto puede suceder si su servidor MYSQL está utilizando un hash de contraseña antiguo , cambia la contraseña o actualiza el servidor para obtener el hash de contraseña más reciente que corrige el problema de autenticación.

Clain Dsilva
fuente
1
Acabo de cambiar la contraseña del usuario db nuevamente, asumiendo que MySql usaría el nuevo hash. Funcionó. No se requirieron otros cambios.
eyal_katz
0

Recibí un mensaje similar al intentar actualizar mi instalación de mediawiki. Estoy usando Netfirms como mi proveedor de alojamiento y lo resolví iniciando sesión en el panel de control, yendo al área de MySQL y cambiando la base de datos que estaba utilizando mediawiki. Luego pude continuar con la actualización de mediawiki.

jedi34567
fuente