Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur : SQLSTATE[HY000] [1045] Access denied

php

Sujet résolu
5 novembre 2020 à 16:30:11

Bonjour,

je suis en train de suivre le cours sur php mais je n'arrive pas à me connecter à la base de données Jeux que j'ai créé.

dans le cours on doit faire ceci :

<?php
try
{
	// On se connecte à MySQL
	$bdd = new PDO('mysql:host=127.0.0.1;dbname=Jeux;charset=utf8', 'root', 'root');
}
catch(Exception $e)
{
	// En cas d'erreur, on affiche un message et on arrête tout
        die('Erreur : '.$e->getMessage());
}

// Si tout va bien, on peut continuer

// On récupère tout le contenu de la table jeux_video
$reponse = $bdd->query('SELECT * FROM jeux_video');

// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
?>
    <p>
    <strong>Jeu</strong> : <?php echo $donnees['nom']; ?><br />
    Le possesseur de ce jeu est : <?php echo $donnees['possesseur']; ?>, et il le vend à <?php echo $donnees['prix']; ?> euros !<br />
    Ce jeu fonctionne sur <?php echo $donnees['console']; ?> et on peut y jouer à <?php echo $donnees['nbre_joueurs_max']; ?> au maximum<br />
    <?php echo $donnees['possesseur']; ?> a laissé ces commentaires sur <?php echo $donnees['nom']; ?> : <em><?php echo $donnees['commentaires']; ?></em>
   </p>
<?php
}

$reponse->closeCursor(); // Termine le traitement de la requête

?>

Malheureusement cette erreur s'affiche :

Erreur : SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)

j'ai un peu fait le tour des différents forum mais rien de concluant. je ne comprends pourquoi je n'ai pas accès.

J'ai beau changer localhost par l'adresse, enlever ou mettre le mdp root ca ne change rien.

J'ai bien vérifié les droits sur la base de données c'est ok.

Merci de votre aide



  • Partager sur Facebook
  • Partager sur Twitter
5 novembre 2020 à 16:46:59

Bonjour moi j'ai fais pareil que la vidéo de Openclassrooms :
<?php 
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', 'root');
$donnees = $bdd->query('SELECT * FROM jeux_video');
while ($donnee = $donnees->fetch())
{
	echo 'Le jeux <strong>' . $donnee['nom'] . '</strong> se joue sur <strong>' . $donnee['console'] . '</strong><br>';
}

?>

 Et tout s'affiche bien !

 donc regarde bien dans ton code : 

<?php
try
{
    // On se connecte à MySQL
    $bdd = new PDO('mysql:host=127.0.0.1;dbname=Jeux;charset=utf8', 'root', 'root');
}
catch(Exception $e)
{

C'est dans ce code qu'il y a erreur ! 


Essaie cette connexion de bases de données : 

<?php
try
{
    // On se connecte à MySQL
    $bdd = new PDO('mysql:host=localhost;dbname=Jeux;charset=utf8', 'root', '');
}
catch(Exception $e)
{

a noté que je suis débutant aussi lol !




  • Partager sur Facebook
  • Partager sur Twitter
5 novembre 2020 à 16:56:12

Meri de ton aide !

malheureusement comme je l'ai expliqué que je fasse :

<?php
try
{
    // On se connecte à MySQL
    $bdd = new PDO('mysql:host=127.0.0.1;dbname=Jeux;charset=utf8', 'root', 'root');
}
catch(Exception $e)
{

ou bien

<?php
try
{
    // On se connecte à MySQL
    $bdd = new PDO('mysql:host=localhost;dbname=Jeux;charset=utf8', 'root', '');
}
catch(Exception $e)
{

ca me met la meme erreur. A savoir : Erreur : SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)

Meme si j'utilise ton morceau de code pour accéder a la BDD ca ne fonctionne pas du tout.


  • Partager sur Facebook
  • Partager sur Twitter
5 novembre 2020 à 18:39:06

Salut,

Vérifie les users dans la table mysql et les droit d'accès via phpmyadmin ou tout autre logiciel équivalent.

  • Partager sur Facebook
  • Partager sur Twitter
5 novembre 2020 à 19:04:36

Bonjour,

Arrives-tu a te connecter à PMA (phpMyAdmin) avec les identifiants et mdp que tu as mis dans ta connexion ?

Si oui, regarde que tu connectes bien à mysql et non à MariaDB (notamment en utilisant le bon port) -> cf le dernier point de la FAQ à ce jour 

  • Partager sur Facebook
  • Partager sur Twitter
5 novembre 2020 à 21:50:40

Bonsoir,

Oui je me connecte bien a phpmyadmin avec le user root et mdp root. 

Je me connecte pas a mariadb.

J'ai bien regardé les privilèges et sur cette base j'ai bien le contrôle total avec le compte root.

Je sèche complètement :(

  • Partager sur Facebook
  • Partager sur Twitter
5 novembre 2020 à 22:04:59

comment sais-tu que c'est mysql et non mariadb ? tu a regardé le port en haut de l'écran de PMA ?
  • Partager sur Facebook
  • Partager sur Twitter
5 novembre 2020 à 22:36:12

Parce que quand je me connecte je peux sélectionner MySQL ou mariadb
  • Partager sur Facebook
  • Partager sur Twitter
5 novembre 2020 à 22:41:17

oui sur PMA, mais quand est-il de la connexion PDO...
  • Partager sur Facebook
  • Partager sur Twitter
5 novembre 2020 à 22:59:18

Bonjour,

je reviens vers vous pour vous dire tout d'abord un grand merci pour votre aide.

Ca fonctionne !

Voici ce qui fonctionne :

<?php
try
{
    // On se connecte à MySQL
    $bdd = new PDO('mysql:host=127.0.0.1;dbname=Jeux;charset=utf8;port=3307', 'root', 'root'); // il faut préciser le port ici pour que ca fonctionne. Par défaut il doit, je pense, essayer de se connecter a Mariadb
}
catch(Exception $e)
{
    // En cas d'erreur, on affiche un message et on arrête tout
        die('Erreur : '.$e->getMessage());
}
 
// Si tout va bien, on peut continuer
 
// On récupère tout le contenu de la table jeux_video
$reponse = $bdd->query('SELECT * FROM jeux_video');
 
// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
?>
    <p>
    <strong>Jeu</strong> : <?php echo $donnees['nom']; ?><br />
    Le possesseur de ce jeu est : <?php echo $donnees['possesseur']; ?>, et il le vend à <?php echo $donnees['prix']; ?> euros !<br />
    Ce jeu fonctionne sur <?php echo $donnees['console']; ?> et on peut y jouer à <?php echo $donnees['nbre_joueurs_max']; ?> au maximum<br />
    <?php echo $donnees['possesseur']; ?> a laissé ces commentaires sur <?php echo $donnees['nom']; ?> : <em><?php echo $donnees['commentaires']; ?></em>
   </p>
<?php
}
 
$reponse->closeCursor(); // Termine le traitement de la requête
 
?>

 Merci à vous et notamment à Aurélien.C qui m'a aiguillait sur la bonne piste.

J'espere que ce poste saura aider les débutants comme moi ;)




-
Edité par Nicolas Michoux 6 novembre 2020 à 10:48:55

  • Partager sur Facebook
  • Partager sur Twitter
16 mars 2024 à 7:40:00

Erreur:SQLSTATE[HY000] [1045] Access denied for user ''@'localhost' (using password: NO)
  • Partager sur Facebook
  • Partager sur Twitter
16 mars 2024 à 8:37:48

@FelicienJosephManampisoa Bonjour merci de ne pas squatter le sujet résolu des autres, créer votre propre sujet dans le respect des règles du forum à savoir qu'un message commence par des règles de politesses (Un bonjour ou des salutations à la communauté et se termine par des remerciements par avances pour les futures réponses), la description de votre problème et le code que vous avez écrit inséré sur le forum à l'aide de l'outil d'intégration de code soit le bouton code </>.

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

Liens conseillés

Je ferme ici.

  • Partager sur Facebook
  • Partager sur Twitter