Maison  >  Article  >  base de données  >  Pourquoi est-ce que j'obtiens des erreurs « Accès refusé » dans MySQL ?

Pourquoi est-ce que j'obtiens des erreurs « Accès refusé » dans MySQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-31 21:33:29414parcourir

Why Am I Getting

MySQL : Comprendre les erreurs « Accès refusé »

Rencontrer le message d'erreur « Accès refusé pour l'utilisateur » dans MySQL peut être frustrant. Pour résoudre ce problème, il est crucial de comprendre la nature de l'erreur et les causes potentielles.

Comprendre le contrôle d'accès dans MySQL

MySQL implémente un système de contrôle d'accès basé sur les rôles, où les utilisateurs se voient attribuer des rôles et des privilèges qui déterminent leur niveau d'accès aux bases de données et aux objets. Par défaut, les utilisateurs n'ont accès qu'aux objets de leur compte.

Causes courantes des erreurs « Accès refusé »

  • Identifiants incorrects : Vérifiez que le nom d'utilisateur et le mot de passe spécifiés lors de votre tentative de connexion sont corrects.
  • Privilèges limités : Assurez-vous que l'utilisateur a obtenu les privilèges appropriés sur la base de données ou la table que vous essayez pour y accéder.
  • Hôte incompatible : MySQL vérifie l'hôte à partir duquel une connexion est établie. Spécifiez le nom d'hôte dans la chaîne de connexion pour qu'il corresponde à l'hôte pour lequel l'utilisateur est autorisé.

Résolution des erreurs d'accès refusé

Pour corriger les erreurs « Accès refusé » , suivez ces étapes :

  1. Vérifiez les informations d'identification : Confirmez que vous utilisez le nom d'utilisateur et le mot de passe corrects pour le compte.
  2. Accorder des privilèges : Si nécessaire, accordez à l'utilisateur les privilèges requis sur la base de données ou la table à l'aide d'une instruction telle que :

    <code class="sql">GRANT ALL ON *.* TO 'servname_shb'@'localhost';</code>
  3. Spécifier l'hôte : Ajouter le nom d'hôte à la chaîne de connexion, par exemple :

    <code class="sql">$dbhost = "localhost";
    $dbuser = "servname_shb";
    $dbpass = "password";
    $c = mysql_connect($dbhost, $dbuser, $dbpass, true) or die("Error:".mysql_error());</code>
  4. Actualiser les privilèges : Pour garantir que les modifications prennent effet, actualisez les privilèges à l'aide de la commande :

    <code class="sql">FLUSH PRIVILEGES;</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn