Maison > base de données > tutoriel mysql > 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
Libérer: 2024-11-23 11:38:33
original
784 Les gens l'ont consulté

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'
Copier après la connexion

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
    Copier après la connexion
  2. Exécutez la commande suivante pour accorder le privilèges :

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

    FLUSH PRIVILEGES;
    Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal