web-dev-qa-db-fra.com

Comment configurer un serveur MySQL pour accepter des connexions distantes?

J'installe un serveur MySQL dans Ubuntu Desktop. Je pourrais connecter le navigateur de requête MySQL lors de la spécification de la Server Hostname comme localhost, mais lorsque je le remplace par l'IP de la machine, il cesse de fonctionner (même si le navigateur de requête MySQL fonctionne dans la même machine).

Tout ce que j'ai fait jusqu'à présent, c'est enlever les IPtables, mais il semble que cela n'a rien à voir avec ça.

Voici le message d'erreur

Impossible de se connecter à l'hôte '192.168.0.2'.

Erreur MySQL NR. 2003

Impossible de se connecter à MySQL Server sur '192.168.0.2' (111)

Cliquez sur le bouton 'ping' pour voir s'il existe un problème de réseautage.

Le ping est ok, bien que

16
Jader Dias

Vous devrez lier votre mysqld à une adresse IP différente de 127.0.0.1.

Ouvrir votre my.cnf (/etc/mysql/my.cnf habituellement) et modifier la ligne qui dit

bind = 127.0.0.1

à n'importe quelle adresse IP, votre machine utilise pour se connecter au monde extérieur. 0.0.0.0 Lié à toutes les adresses IP. N'oubliez pas de redémarrer votre mysqld après ce changement.

22
halfdan

En plus de la réponse de Halfdan, je devais exécuter la commande mysql suivante:

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON databasename.*
TO 'username'@'clientipaddress'
IDENTIFIED BY 'password'

Comme j'ai appris sur

http://forums.mysql.com/read.php?86,23619,41248#msg-41248

5
Jader Dias

Plusieurs autres problèmes potentiels expliqués ici:

http://www.ycyberciiti.biz/tips/how-do-enable-remote-access-a-mysql-database-server.htmlhttp: // dev. mysql.com/doc/refman/5.1/fr/Access-Dentieied.html =

Si vous souhaitez accorder tous les privilèges à toutes les bases de données, essayez

grant all on *.* to 'joe'@'%';

Cependant, avant de le faire, assurez-vous d'avoir un utilisateur dans la base de données "MySQL" qui a "Hôte" défini sur votre adresse IP - dans mon cas, mon adresse IP ici à la maison. Donc, l'utilisateur "Joe" peut avoir plus d'un enregistrement, un pour chaque IP qu'il pourrait appeler. Pour voir ce que vous avez déjà là-bas:

use mysql;
select Host, User, Password from user where user='joe';`

Dans mon cas, éteint mon utilisateur avait maintenant l'adresse IP correcte mais le mot de passe était également manquant. J'ai coupé le mot de passe (c'est haché ou quelque chose) et cela a résolu mon problème de connexion à distance particulière:

update user set Password='5493845039485' where user='joe';

Une autre chose, dans my.cnf, vous voudrez peut-être définir "Port = 3306" ou quel que soit le port que vous envisagez d'utiliser.

2
PJ Brunet