161 votes

Impossible de se connecter au serveur MySQL (erreur 111)

J'ai installé un serveur mysql sur une boîte linux dont l'adresse IP est 192.168.1.100, mais lorsque j'essaie de me connecter à cette adresse IP, il y a toujours une erreur (111), alors que l'utilisation de localhost et 127.0.0.1 est OK.

beer@beer-laptop# ifconfig | grep "inet addr"
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0

beer@beer-laptop# mysql -ubeer -pbeer -h192.168.1.100
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.100' (111)

beer@beer-laptop# mysql -ubeer -pbeer -hlocalhost
Welcome to the MySQL monitor.  Commands end with ; or \\g.
Your MySQL connection id is 160
Server version: 5.1.31-1ubuntu2 (Ubuntu)

Type 'help;' or '\\h' for help. Type '\\c' to clear the buffer.

mysql> 

beer@beer-laptop# mysql -ubeer -pbeer -h127.0.0.1
Welcome to the MySQL monitor.  Commands end with ; or \\g.
Your MySQL connection id is 161
Server version: 5.1.31-1ubuntu2 (Ubuntu)

Type 'help;' or '\\h' for help. Type '\\c' to clear the buffer.

mysql> 

Si vous vous connectez depuis une autre machine, l'erreur 111 est également présente.

another@another-laptop# mysql -ubeer -pbeer -h192.168.1.100
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.100' (111)

Quelle est la différence entre utiliser localhost/127.0.0.1 et 192.168.1.100 dans ce cas. Je ne sais pas comment me connecter à cette base de données depuis une autre machine.

Aide, s'il vous plaît. Merci.

0 votes

161 upvotes et 51 drapeaux avec près d'un demi-million de vues, question clairement rédigée avec un problème clairement énoncé et plusieurs réponses. Pourquoi cette question a-t-elle été fermée en tant qu'OT en premier lieu, et pourquoi reste-t-elle fermée ? Elle est clairement utile pour certains.

272voto

Pascal MARTIN Points 195780

Cela signifie probablement que votre serveur MySQL n'écoute que l'interface localhost.

Si vous avez des lignes comme celle-ci :

bind-address = 127.0.0.1

Dans votre my.cnf fichier de configuration vous devriez les commenter (ajouter un # au début des lignes) et redémarrez MySQL.

sudo service mysql restart

Bien entendu, pour ce faire, vous devez être l'administrateur du serveur.

6 votes

Évidemment, il n'a pas le skip-networking ligne ;-)

12 votes

Comment connaître l'emplacement de mysql my.cnf : stackoverflow.com/questions/2482234/

2 votes

Mais que se passe-t-il lorsque vous POUVEZ vous y connecter à partir de l'atelier mysql ? j'ai le même problème.

38voto

111 moyens connexion refusée ce qui signifie que votre mysqld n'écoute que l'adresse de l'utilisateur. localhost interface.

Pour le modifier, vous pouvez consulter l'onglet bind-address dans le mysqld de votre my.cnf fichier.

0 votes

Il est également utile de vérifier si le numéro de port est valide. Mauvaise correspondance :3306 y :3307 peut également entraîner l'erreur 111.

2 votes

@NXT, je ne sais même pas si mysql peut écouter sur différents ports sur différentes interfaces, mais c'est un scénario très improbable (étant donné les symptômes dans le post original) même si c'est possible. Ensuite, il peut y avoir des règles de pare-feu, etc. Il existe de nombreuses façons d'y parvenir, mais la probabilité diffère

0 votes

Ça ne veut pas toujours dire ça. Mon my.cnf n'ont pas de bind-address o skip-networking lignes, et pourtant je reçois la même erreur. Aucun pare-feu n'est installé non plus. Je suis à court d'idées.

10voto

xnome Points 29

Si toutes les réponses précédentes n'ont pas donné de solution, vous devriez vérifier vos privilèges d'utilisateur.

Si vous pouviez vous connecter en tant que root vers mysql alors vous devez ajouter ceci :

CREATE USER 'root'@'192.168.1.100' IDENTIFIED BY  '***';
GRANT ALL PRIVILEGES ON * . * TO  'root'@'192.168.1.100' IDENTIFIED BY  '***' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

Essayez ensuite de vous connecter à nouveau en utilisant mysql -ubeer -pbeer -h192.168.1.100 . Cela devrait fonctionner.

19 votes

Je ne pense pas que l'erreur 111 soit liée aux privilèges de l'utilisateur.

1 votes

Ça a marché, et j'avais aussi l'erreur 111.

0 votes

Il semble que ce soit une meilleure solution que d'ouvrir mysql à l'ensemble du ou des réseaux en commentant la ligne 127.0.0.1. cela devrait être la meilleure solution.

7voto

Dragos. Points 31

Si vous utilisez cPanel/WHM, assurez-vous que cette adresse IP figure sur une liste blanche dans le pare-feu. Vous devrez également ajouter cette IP à la liste des IP SQL distantes dans le compte cPanel auquel vous essayez de vous connecter.

1 votes

Pour savoir si le pare-feu est à l'origine de l'erreur, il suffit de constater que le retour de l'erreur prend un certain temps. Si c'est MySQL qui pose problème, la réponse devrait être quasi instantanée.

0 votes

Pouvez-vous expliquer comment cela se passe ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X