Blog / Article #57
MySQL : comprendre root@% et root@localhost

star

29 Juillet 2025

Mysql : comprendre root@% et root@localhost

mysql localhost

MySQL : comprendre root@% et root@localhost

Quand on installe MySQL, on voit souvent des utilisateurs comme :

root@localhost
root@%

Ça peut sembler pareil… mais ce n’est pas du tout la même chose.

root@localhost

  • Cet utilisateur ne peut se connecter qu’en local.
  • “Local” veut dire : sur la même machine que MySQL, souvent via un socket Unix.

Exemple : tu es sur le serveur, tu tapes :

mysql -u root -p

Ça marche, car tu es en local.

root@%

  • % est un joker → ça veut dire “toutes les IP”.
  • root@% peut donc se connecter depuis n’importe quelle machine sur le réseau (si le firewall le permet).

Exemple : tu as MySQL sur un serveur et tu te connectes depuis ton PC :

mysql -u root -p -h 192.168.1.50

Ça marche grâce à root@%.

Pourquoi ça bloque souvent ?

Par défaut, MySQL n’autorise pas root à se connecter à distance.
Il n’y a que root@localhost après l’installation → donc pas de connexion réseau possible.

Pour activer l’accès root depuis une autre machine :

CREATE USER 'root'@'%' IDENTIFIED BY 'monmotdepasse';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Attention à la sécurité

Autoriser root depuis partout (%) = très risqué.
À éviter sur Internet.

La bonne pratique :

  • Créer un utilisateur dédié (ex : app_user@'%')
  • Limiter ses droits au strict nécessaire

Activer le root login distant (optionnel)

Si tu as besoin de root à distance (par ex. en développement) :

  1. Édite le fichier /etc/mysql/mysql.conf.d/mysqld.cnf (ou équivalent).
  2. Vérifie que bind-address n’est pas limité à 127.0.0.1 :
    bind-address = 0.0.0.0
        
  3. Redémarre MySQL :
    sudo systemctl restart mysql
        

Maintenant root@% pourra se connecter… mais pense à protéger ton serveur (firewall, réseau privé).

Résumé

  • root@localhost → accès uniquement en local.
  • root@% → accès depuis n’importe où.
  • Par défaut, root distant est désactivé (seulement localhost).
  • Si tu actives root@%sécurise ton serveur !

Je pense que tu devrais mettre un +1

Auteur de l'article
Retour a la liste