w3school new net mysqli_connect mysql_connect example conexion php mysql hash sha

new - php mysqli_connect: método de autenticación desconocido para el cliente



new mysqli php example (6)

Estoy usando php mysqli_connect para iniciar sesión en una base de datos MySQL (todo en localhost)

<?php //DEFINE (''DB_USER'', ''user2''); //DEFINE (''DB_PASSWORD'', ''pass2''); DEFINE (''DB_USER'', ''user1''); DEFINE (''DB_PASSWORD'', ''pass1''); DEFINE (''DB_HOST'', ''127.0.0.1''); DEFINE (''DB_NAME'', ''dbname''); $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); if(!$dbc){ die(''error connecting to database''); } ?>

esta es la tabla mysql.user:

MySQL Server ini File:

[mysqld] # The default authentication plugin to be used when connecting to the server default_authentication_plugin=caching_sha2_password #default_authentication_plugin=mysql_native_password

con caching_sha2_password en el archivo ini del servidor MySQL, no es posible iniciar sesión con user1 o user2;

error: mysqli_connect (): el servidor solicitó un método de autenticación desconocido para el cliente [caching_sha2_password] en ...

con mysql_native_password en el archivo ini del servidor MySQL, es posible iniciar sesión con user1, pero con user2, el mismo error;

¿Cómo puedo iniciar sesión usando caching_sha2_password en el servidor mySql?



Ejecuté el siguiente comando ALTER USER ''root'' @ ''localhost'' identified with mysql_native_password BY ''root123''; en la línea de comandos y finalmente reinicie MySQL en los servicios locales.


Funciona para mí (PHP 5.6 + PDO / MySQL Server 8.0 / Windows 7 64bits)

Edite el archivo C:/ProgramData/MySQL/MySQL Server 8.0/my.ini :

default_authentication_plugin=mysql_native_password

Restablecer el servicio MySQL en Windows, y en el shell MySQL ...

ALTER USER my_user@''%'' IDENTIFIED WITH mysql_native_password BY ''password'';



Si estás en Windows y no es posible usar caching_sha2_password , puedes hacer lo siguiente:

  1. ejecute el instalador de MySQL
  2. seleccione "Reconfigurar" al lado de MySQL Server (el elemento superior)
  3. haga clic en "Siguiente" hasta que llegue a "Método de autenticación"
  4. cambie "Use Strong Password Encryption para la autenticación (RECOMENDADO)" a "Use el método de autenticación heredado (conserve la compatibilidad con MySQL 5.X)
  5. haga clic en Siguiente"
  6. ingrese su contraseña de cuenta raíz en Cuentas y roles, y haga clic en "Verificar"
  7. haga clic en Siguiente"
  8. siga haciendo clic en "Siguiente" hasta que llegue a "Aplicar configuración"
  9. haga clic en "Ejecutar"

El instalador hará todos los cambios de configuración necesarios para usted.


ALTER USER ''mysqlUsername''@''localhost'' IDENTIFIED WITH mysql_native_password BY ''mysqlUsernamePassword'';

Eliminar comillas ('') después de ALTER USER y mantener comillas ('') después de mysql_native_password BY

Está trabajando para mí también.