Impossible de se connecter à un Serveur MySQL distant
J'ai un serveur tente de se connecter à une base de données MySQL hébergée à l'extérieur du réseau local. Je suis d'essayer d'utiliser une adresse IP publique pour se connecter à elle.
De tester la connexion à la ligne de commande me donne cette erreur:
ERROR 2003 (HY000): Can't connect to MySQL server on '[ip_address]' (146)
PDO me donne la même erreur. Dans tous les cas, la connexion fonctionne très bien en local et dans le même réseau, ce qui est ce que ça laisse pantois.
Le serveur MySQL a eu son bind-address modifiée de sorte qu'il accepte les connexions à distance. Le serveur MySQL dispose également d'un utilisateur avec des droits appropriés ensemble. Mais dans tous les cas, il semble que je ne peux même pas lancer la connexion en premier lieu.
Est-il de mon.cnf valeur que j'ai besoin d'ajouter de laisser MySQL accepter les demandes provenant de l'extérieur du réseau local?
Grâce.
OriginalL'auteur Julian H. Lam | 2010-09-10
Vous devez vous connecter pour publier un commentaire.
Choses à vérifier:
my.cnf
fichier configuré pour autoriser les connexions à partir d'autre chose que delocalhost
127.0.0.1
IPs - bien que vous auriez plus de chance d'obtenir un accès refusé réponse, que l'un ne peut pas se connecter.Dans ce cas:
ping <mysql server ip>
- vérifiez que vous obtenez une réponse.telnet <mysql server ip> 3306
- devrait en sortie une chaîne de version (il ne fonctionne pas, mais ça vous donne une idée de si c'est en cours d'exécution). Vérifiez également que le démon est en train de tourner sur le serveur (comment dépend win/linux)Quelques bons points dans la réponse, Rudu, merci. Le problème s'est avéré être un bonehead var config de ma part, j'avais mis le "bind-address" à une adresse IP interne, et il devrait travailler à l'extérieur. Craie jusqu'à une fatigue vendredi après-midi...
Il semble donc évident que le lendemain, mais vous pouvez passer des heures à essayer de trouver un bug comme ça. Content que ça triés.
OriginalL'auteur Rudu
d'accorder des privilèges à l'utilisateur de la part de l'hôte. ou d'y accéder à partir de n'importe quel hôte utiliser % (c'est à dire une wild-card) en tant qu'hôte.
OriginalL'auteur Sandesh
Il semble certainement comme le client n'est pas en mesure de se connecter. Cette page a quelques suggestions sur la façon de cerner le problème:
http://dev.mysql.com/doc/refman/5.1/en/can-not-connect-to-server.html
Ce qui se passe si vous essayez de telnet sur le port 3306 sur le serveur? Vous devriez obtenir une invite de commandes à partir de MySQL.
mysql --host=foobar
, et même cela n'a pas de travail, qui clued m'en un peu.OriginalL'auteur mr. w
Accorder des privilèges pour tous les utilisateurs à l'aide de la commande
ACCORDER TOUS LES PRIVILÈGES SUR . À 'root'@'localhost' identified BY 'root' with GRANT OPTION;
ACCORDER TOUS LES PRIVILÈGES SUR . À 'root'@'%' identified BY 'root' with GRANT OPTION;
FLUSH PRIVILEGES;
Maintenant, allez à "mon.cnf de fichier". Pour utiliser ubuntu (sudo find /-type f -name "mon.cnf")
en commentaire la ligne "bind-address = 127.0.0.1"
redémarrer mysql à l'aide Pour ubuntu d'utiliser "sudo service mysql restart"
OriginalL'auteur ravi ranjan