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 ?
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’il s’agit d’un système Windows, vous pouvez le trouver dans le répertoire d’installation 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
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.
telnet (ip du serveur mysql) [portNo]
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
service iptables stop
J'espère que cela vous aidera.
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
.