Autenticación con contraseña anterior que ya no es compatible, use contraseñas de estilo 4.1

Tengo mi sitio web con hostgator y quiero acceder a la base de datos mysql con la aplicación de Windows C # pero cuando intenté conectar recibí este mensaje:

“Autenticación con contraseña anterior que ya no es compatible, use contraseña de estilo 4.1”

He intentado dar una solución:

SET SESSION old_passwords=0; SET PASSWORD FOR user@host=PASSWORD('your pw here'); 

La primera consulta se ejecutó correctamente pero recibí el error “Acceso denegado para el usuario @ host” cuando se ejecutó la segunda consulta. No puedo entender por qué hay este problema. Estoy usando MySQL-connecter-net 6.6.5.

Con éxito conecté mi base de datos con MySql workbench 5.2.47.

¿Alguien puede ayudarme en lo que puedo hacer más?


Me he puesto en contacto con mi sitio de alojamiento y ellos hacen cambios en mi archivo.cnf para usar la contraseña de estilo 4.1. y puedo conectarme con mysql

 mysql -u  -p  -h ; 

pero cuando intenté conectarme con C # con mySQL connecter net 6.6.5 nuevamente obtuve este error.

Estoy usando Visual Studio 2012 con el conector de MySQL 6.6.5 en Windows 8 de 64 bits. este es el código que solía conectar

 using MySQL.Data.MySQLClient; private void button1_Click(object sender, EventArgs e) { string connStr = String.Format("server={0};port={1};uid={2};password={3};database={4}", txtserver.Text, txtPort.Text, txtUser.Text, txtPassword.Text, txtDatabase.Text); conn = new MySqlConnection(connStr); try { conn.Open(); MessageBox.Show("Test Connection Succeded"); } catch (MySqlException ex) { MessageBox.Show(ex.Message); } } 

No puedo entender dónde está el problema. Por favor, ayúdame

Yo tuve el mismo problema. En mi caso, simplemente ejecuté el siguiente comando conectado en mi base de datos por el Workbench:

 SET SESSION old_passwords=0; SET PASSWORD FOR my_user=PASSWORD('my_password'); 

Después de eso, pude conectar utilizando MySql Connector 6.6.5 en el código c # con la cadena de conexión mysql común:

 "server=my_server_ip;user=my_user;database=my_db;port=3306;password=my_password;" 

Hoy tuve un problema similar en mi aplicación C #. Intenté conectarme a un servidor en hostgator.com (mysql) y conectarme a localhost. Después de leer muchas publicaciones y hacer muchas modificaciones, seguí cada paso pero no pude conectarme a mi hostgator mysql.

La solución en mi caso fue cambiar la biblioteca MySql Connector / NET de la versión 6. * a la versión 5. *. Después del cambio mi aplicación se conectó con éxito.

Si bien esta puede no ser una solución viable para todos, puede funcionar para algunos.

Hoy encontré este problema, pero lo solucioné de la siguiente manera:

 SET old_passwords=FALSE; SET PASSWORD = PASSWORD('new pwd here'); 

Bueno, tal vez la versión de conexión del servidor es menor que la del cliente, por lo que debe ejecutar esto: “SET old_passwords = FALSE;” ¡Buena suerte!

Tuve el mismo problema al usar el paquete MySqlClient para C #. Vamos a descomponerlo:

Necesitamos que la base de datos no use contraseñas antiguas, por lo que realizamos

SET old_passwords = 0;

AVISO no hay palabra clave “SESIÓN”. Esto es lo que permitió que solo tu primera consulta funcione, “SESSION” implica temporal y cualquier configuración de sesión se pierde después de que termina una sesión.

A continuación, debemos establecer la contraseña del usuario @ host para el nuevo estilo de contraseña

SET PASSWORD FOR user @ host = PASSWORD (‘contraseña’);

Estos dos deberían permitir su MySqlClient

Solo quería agregar a @diangelisj la respuesta y decir que la raíz del problema es la versión de PhpMyAdmin instalada en su servidor. Para utilizar la última clase de conector de datos MySQL, debe tener el último PhpMyAdmin (o surgen problemas). En mi caso, tengo PhpMyAdmin 4.0.10.7 y traté de usar MySQL Data Connector 6.7.9, que dio el error.

Lo que hice:

  1. Descargue la versión 5.2.7 de https://dev.mysql.com/downloads/connector/net/6.9.html

  2. Agregue .dll como referencia a la aplicación

  3. ¡Prest!

Acabo de resolver mi problema así:

1) Conéctese a la base de datos con mysql workbench (seleccione “use old auth” y “send pass in cleartext”

2) Utilizando el banco de trabajo, ejecuté varias veces (porque decía ‘0 filas afectadas’): (también cambia el ID de usuario y la contraseña para tus cosas apropiadas)

 SET SESSION old_passwords=0; SET PASSWORD FOR userID=PASSWORD('password'); SET SESSION old_passwords=false; SET PASSWORD FOR userID=PASSWORD('password'); 

3) Ahora regrese a su aplicación y debería ejecutarse …

Así es como lo hice, al menos. Estoy usando IX mysql y usan autenticación antigua en su servidor, así que debes hacer algo por tu cuenta …

No he logrado resolver el problema como los otros que han respondido, aunque probé todo lo que se ha propuesto. Al final resultó que el servidor en el que estaba mi base de datos no se actualiza phpMyAdmin desde la versión 3.5.5, y actualmente se está utilizando en todas partes la versión 4.1.14 y es un problema. La solución es actualizar su host phpMyAdmin o su propio mySQL a una versión anterior para continuar trabajando en DB remoto. Puede necesitar este conocimiento para resolver algunas dudas que han surgido. 🙂

Hoy encontré el mismo problema. Descargué Workbench. Hay algunos ajustes para el banco de trabajo para conectar la base de datos, de la siguiente manera: 1. Seleccione la pestaña SSL, seleccione la opción ‘no’ en ‘ Usar SSL ‘. 2. Seleccione la pestaña avanzada, seleccione en Usar el protocolo de autenticación ole. después de que Workbench esté trabajando. y sigue la publicación tai1001 ‘. Eso es todo lo que encontré todos los pasos que funcionan.

Olvídese de aplicar SET old_password = 0 ya que si el servidor está configurado para usar una nueva contraseña, no hay razón para cambiar el indicador en el servidor si su aplicación ya no tiene acceso. Investigue el conector NET que está utilizando.

Connector 6.5.4 es el correcto para usar old_password, la versión de rencent usa la nueva.

La mejor práctica sería evitar instalar el conector en la máquina, simplemente deje NET para manejar el dll si ya lo tiene o de todos modos intente encontrar MySQL.Data.DLL versión 6.5.4.0 (384 kbytes)