Partage
  • Partager sur Facebook
  • Partager sur Twitter

SQLSTATE[HY000] [2054] The server requested authen

Sujet résolu
8 février 2020 à 18:41:24

Bonjour a tous,

Je suis en train de suivre le cours de PHP d'openclassrooms et je suis confronté a l'erreur suivante : 

SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client 

Le code utilisé :

<?php
try
{
	$bdd = new PDO('mysql:host=localhost;dbname=bdd_photo;charset=utf8', 'user', '1234');
}
catch (Exception $e)
{
        die('Erreur : ' . $e->getMessage());
}
?>

Je dois avouer que je suis un peu perdu... J'ai épluché différentes solutions mais aucune ne m'aide. 

J'arrive bien a me connecter avec ces identifiants sur mon phpmyadmin alors pourquoi ca ne marche pas via le code ?

Pour info, j'utilise WAMP server. Avec Apache versuin 2.4.41, PHP version 7.3.12 et MySQL 8.0.18. J'ai également changé le port de MySQL pour le port 3308. 

Autre info qui peut peut être aider, j'ai déjà fait manipulé des BDD MySQL sur ma machine, avec l'utilisation de workbench et une source de données configurée dans ODBC.

Bonne soirée,

Gautier

  • Partager sur Facebook
  • Partager sur Twitter

Dev Labview

8 février 2020 à 21:18:43

Bonjour,

Peux-tu te rendre dans PhpMyAdmin, dans le menu "Comptes utilisateurs" et mettre une capture d'écran du tableau que tu as STP ?

  • Partager sur Facebook
  • Partager sur Twitter

Il y a 10 catégories de personnes : celles qui savent compter en binaire et celles qui ne savent pas.

8 février 2020 à 22:08:54

Bonsoir,

Le port par défaut est le 3306 donc comme tu le dis, tu as mis 3308 donc il faut ajour ";port=3308" dans ta connexion

  • Partager sur Facebook
  • Partager sur Twitter
9 février 2020 à 0:02:57

Salut !

Cette erreur survenait avec MySQL 8 ou 5.7.29 sous Windows, parfois fourni avec WampServer. La méthode d'authentification par défaut a quelque peu changé et c'est une des raisons qui fait que le mainteneur de WampServer pourrait bien ne plus fournir que MariaDB à l'avenir. Ça a été un bug qui a mis du temps à être réglé.

Il semble qu'il soit possible de pallier le problème en ajoutant default_authentication_plugin=mysql_native_password dans le my.ini de MySQL. Vérifier que ce n'est pas déjà présent et décommenté auparavant.

  • Partager sur Facebook
  • Partager sur Twitter
9 février 2020 à 20:22:48

Hello !

Merci pour vos réponses.

Concernant la table des comptes, voici le screenshot :

Pour le "port=3308", il est bien présent dans mon my.ini sans le ; devant.

Concernant le default_authentification, la ligne est bien présente et décommentée.

Bonne soirée,

Gautier

  • Partager sur Facebook
  • Partager sur Twitter

Dev Labview

9 février 2020 à 23:23:08

Salut,

Effectivement je crois qu'Aurélien.C a raison. Il faut que tu modifies ta chaîne de connexion pour y ajouter le port 3308 : 

$bdd = new PDO('mysql:host=localhost;dbname=bdd_photo;charset=utf8;port=3308', 'user', '1234');
  • Partager sur Facebook
  • Partager sur Twitter

Il y a 10 catégories de personnes : celles qui savent compter en binaire et celles qui ne savent pas.

10 février 2020 à 15:18:05

Ca a l'air de marcher !!!!! 

Merci beaucoup ! :D

  • Partager sur Facebook
  • Partager sur Twitter

Dev Labview

6 juillet 2020 à 20:34:44

Alexdu98 a écrit:

Salut,

Effectivement je crois qu'Aurélien.C a raison. Il faut que tu modifies ta chaîne de connexion pour y ajouter le port 3308 : 

$bdd = new PDO('mysql:host=localhost;dbname=bdd_photo;charset=utf8;port=3308', 'user', '1234');

Il faut mettre ça dans quel Fichier ? (J'ai le même problème qu'Amorod)
  • Partager sur Facebook
  • Partager sur Twitter
6 juillet 2020 à 22:15:02

@ClémentLeprovost Bonjour, merci de ne pas déterrer d'ancien sujet résolu.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter