Comment autoriser la connexion à distance à mysql

J'ai installé MySQL Community Edition 5.5 sur mon ordinateur local et je veux autoriser les connexions à distance afin de pouvoir me connecter à partir d'une source externe.

Comment puis-je le faire ?

Solution

Cela est autorisé par défaut sur MySQL.

Ce qui est désactivé par défaut est l'accès distant root. Si vous voulez l'activer, exécutez cette commande SQL localement :

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

Ensuite, trouvez la ligne suivante et commentez-la dans votre fichier my.cnf, qui se trouve généralement dans /etc/mysql/my.cnf sur les systèmes Unix/OSX. Dans certains cas, l'emplacement du fichier est /etc/mysql/mysql.conf.d/mysqld.cnf).

S&#8217il s&#8217agit d&#8217un système Windows, vous pouvez le trouver dans le répertoire d&#8217installation de MySQL, généralement quelque chose comme C:\Program Files\MySQL\MySQL Server 5.5\ et le nom du fichier sera my.ini.

Modifiez la ligne

 bind-address = 127.0.0.1

en

 #bind-address = 127.0.0.1

Et redémarrez le serveur MySQL ([Unix/OSX][1], et [Windows][2]) pour que les modifications soient prises en compte.

[1] : https://superuser.com/questions/282115/how-to-restart-mysql [2] : https://stackoverflow.com/questions/12972434/restart-mysql-server-on-windows-7

Commentaires (27)

Dans mon cas, j'essayais de me connecter à un serveur mysql distant sur un système d'exploitation centenaire. Après avoir essayé de nombreuses solutions (accorder tous les privilèges, supprimer les liaisons IP, activer le réseau), le problème n'était toujours pas résolu.

En cherchant diverses solutions, je suis tombé sur iptables, qui m'a fait réaliser que le port 3306 de mysql n'acceptait pas les connexions.

Voici une petite note sur la façon dont j'ai vérifié et résolu ce problème.

  • Vérifier si le port accepte les connexions :
telnet (ip du serveur mysql) [portNo]
  • Ajout d'une règle de table d'ip pour autoriser les connexions sur le port :
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
  • Je ne recommanderais pas ceci pour un environnement de production, mais si vos iptables ne sont pas configurés correctement, l'ajout de règles pourrait ne pas résoudre le problème. Dans ce cas, il faut procéder comme suit :
service iptables stop

J'espère que cela vous aidera.

Commentaires (0)

Si le processus de votre serveur MySQL écoute uniquement sur 127.0.0.1 ou ::1, vous ne pourrez pas vous connecter à distance. Si vous avez un paramètre bind-address dans /etc/my.cnf, cela peut être la source du problème.

Vous devrez également ajouter des privilèges pour un utilisateur non-localhost.

Commentaires (2)