Maison  >  Article  >  base de données  >  Pourquoi MySQL traite-t-il « localhost » et « 127.0.0.1 » différemment lors de l'octroi de privilèges ?

Pourquoi MySQL traite-t-il « localhost » et « 127.0.0.1 » différemment lors de l'octroi de privilèges ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-23 11:38:33757parcourir

Why Does MySQL Treat `localhost` and `127.0.0.1` Differently When Granting Privileges?

Localhost vs. 127.0.0.1 : l'étrange cas des privilèges MySQL

Lorsque vous travaillez avec MySQL, il est courant de rencontrer une disparité apparemment déroutante entre les termes « localhost » et « 127.0.0.1 ». Cette différence se manifeste dans le contexte de l'octroi de privilèges aux utilisateurs au sein du système de base de données.

Pour illustrer, considérons l'exemple suivant :

$ mysql -u root -h 127.0.0.1 -e 'show tables' created_from_host;
+-----------------------------+
| Tables_in_created_from_host |
+-----------------------------+
| test                        |
+-----------------------------+

$ mysql -u root -h localhost -e 'show tables' created_from_host;
ERROR 1049 (42000): Unknown database 'created_from_host'

Cette différence se produit parce que MySQL fait la différence entre les connexions établies à l'aide d'un nom d'hôte (par exemple, « localhost ») et connexions établies via un socket (par exemple, « 127.0.0.1 »). La méthode socket, utilisée lorsqu'aucun nom d'hôte n'est spécifié ou lors de la connexion avec 'localhost', utilise un socket local pour communiquer avec le serveur de base de données.

Cette distinction devient significative dans le domaine des privilèges utilisateur. Voici un guide simple pour accorder TOUS les privilèges sur TOUTES les bases de données de TOUS les hôtes pour 'root' :

  1. Connectez-vous à MySQL en utilisant le compte root :

    $ mysql -u root -p
  2. Exécutez la commande suivante pour accorder le privilèges :

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
  3. Vinez les privilèges pour garantir que les modifications prennent effet :

    FLUSH PRIVILEGES;

En suivant ces étapes, vous pouvez vous assurer ce « root » aura un accès illimité à votre système de base de données depuis n'importe quel hôte, qu'il soit connecté via « localhost » ou '127.0.0.1'.

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