Votre root
compte, et cette déclaration s'applique à n'importe quel compte, ne peut avoir été ajouté qu'avec un accès localhost (ce qui est recommandé).
Vous pouvez vérifier cela avec :
SELECT host FROM mysql.user WHERE User = 'root';
Si vous ne voyez que des résultats avec localhost
et 127.0.0.1
, vous ne pouvez pas vous connecter à partir d'une source externe. Si vous voyez d'autres adresses IP, mais pas celle à partir de laquelle vous vous connectez, c'est aussi une indication.
Vous devrez ajouter l'adresse IP de chaque système auquel vous souhaitez accorder l'accès, puis accorder des privilèges :
CREATE USER 'root'@'ip_address' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'ip_address';
Si vous voyez %
, eh bien, il y a un autre problème car c'est "toute source distante". Si toutefois vous souhaitez que tous les systèmes se connectent via root, utilisez le %
caractère générique pour accorder l'accès :
CREATE USER 'root'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
Enfin, rechargez les autorisations et vous devriez pouvoir accéder à distance :
FLUSH PRIVILEGES;