Impossible de se connecter au serveur MySQL Erreur 111 [fermé]

152

J'ai installé le serveur mysql sur la boîte Linux IP = 192.168.1.100 mais lorsque j'essaye de me connecter à cette adresse IP, c'est toujours une erreur (111). mais utilisez localhost et 127.0.0.1 est OK.

bière @ bière-ordinateur portable # ifconfig | grep "inet addr"
          inet addr: 127.0.0.1 Masque: 255.0.0.0
          adr inet: 192.168.1.100 Bcast: 192.168.1.255 Masque: 255.255.255.0

bière @ beer-laptop # mysql -ubeer -pbeer -h192.168.1.100
ERREUR 2003 (HY000): impossible de se connecter au serveur MySQL sur '192.168.1.100' (111)

bière @ beer-laptop # mysql -ubeer -pbeer -hlocalhost
Bienvenue sur le moniteur MySQL. Les commandes se terminent par; ou \ g.
Votre identifiant de connexion MySQL est 160
Version du serveur: 5.1.31-1ubuntu2 (Ubuntu)

Tapez 'help;' ou '\ h' pour obtenir de l'aide. Tapez '\ c' pour effacer le tampon.

mysql> 

bière @ beer-laptop # mysql -ubeer -pbeer -h127.0.0.1
Bienvenue sur le moniteur MySQL. Les commandes se terminent par; ou \ g.
Votre identifiant de connexion MySQL est 161
Version du serveur: 5.1.31-1ubuntu2 (Ubuntu)

Tapez 'help;' ou '\ h' pour obtenir de l'aide. Tapez '\ c' pour effacer le tampon.

mysql> 

Connectez-vous à partir d'une autre machine, l'erreur 111.

un autre @ un autre ordinateur portable # mysql -ubeer -pbeer -h192.168.1.100
ERREUR 2003 (HY000): impossible de se connecter au serveur MySQL sur '192.168.1.100' (111)

Quelle est la différence entre use 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.

Aidez-moi, s'il vous plaît. Remercier.

porteretherock
la source

Réponses:

263

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.cnffichier de configuration , vous devez les commenter (ajouter un # au début des lignes) , et redémarrer MySQL.

sudo service mysql restart

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

Pascal MARTIN
la source
6
évidemment, il n'a pas la skip-networkingligne ;-)
Michael Krelin - hacker
11
comment connaître l'emplacement mysql my.cnf: stackoverflow.com/questions/2482234/…
Cyril Jacquart
2
mais que se passe-t-il lorsque vous POUVEZ vous y connecter à partir du plan de travail mysql? J'ai le même problème.
George Pamfilis
3
J'ai suivi ce qui est donné dans la réponse mais je n'ai toujours pas pu le faire fonctionner. J'ai alors compris que le paramètre "bind-address" se trouve dans le fichier "/etc/mysql/mysql.conf.d/mysqld.cnf". Commenté là-bas et cela a fonctionné!
Yahya
3
les versions plus récentes d'ubuntu> = 16.04 peuvent avoir cette ligne dans /etc/mysql/mysql.conf.d/myqld.cnf
dellasavia
38

111 signifie que la connexion est refusée , ce qui signifie que votre mysqld n'écoute que l' localhostinterface.

Pour le modifier, vous pouvez regarder la bind-addressvaleur dans la mysqldsection de votre my.cnffichier.

Michael Krelin - hacker
la source
Cela vaut également la peine de vérifier si le numéro de port est valide. Non-correspondance :3306et :3307peut également entraîner une erreur 111.
NXT
2
@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 y a plusieurs façons d'y parvenir, mais la probabilité diffère…
Michael Krelin - hacker
Cela ne veut pas toujours dire ça. Mes my.cnffichiers n'ont pas de lignes bind-addressou skip-networking, et pourtant j'obtiens la même erreur. Aucun pare-feu installé non plus. Manqué d'idées.
CoderGuy123
Eh bien, 111 signifie toujours que la connexion est refusée :) Et le localhost-only est dans ce cas particulier en raison d'autres preuves. Si vous fournissez plus de détails sur votre cas, je pourrais peut-être vous aider? De plus, selon votre système actuel, vous aurez probablement une configuration dispersée dans plusieurs fichiers.
Michael Krelin - hacker
10

Si toutes les réponses précédentes ne donnent aucune solution, vous devez vérifier vos privilèges d'utilisateur.

Si vous pouvez vous connecter rootà mysql, 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. Ça devrait marcher.

xnome
la source
17
Je ne pense pas que l'erreur liée aux privilèges utilisateur donnerait l'erreur 111.
ufk
1
Cela fonctionnait réellement et j'obtenais également une erreur 111.
Borjante le
semble être une meilleure solution que d'ouvrir mysql à l'ensemble du ou des réseaux en commentant la ligne 127.0.0.1. ce devrait être la meilleure solution.
nyxee
7

Si vous exécutez cPanel / WHM, assurez-vous que l'adresse IP est sur la liste blanche dans le pare-feu. Vous devrez également ajouter cette adresse IP à la liste d'adresses IP SQL distantes du compte cPanel auquel vous essayez de vous connecter.

Dragos.
la source
1
Un bon "dire" pour voir si c'est un pare-feu à l'origine de l'erreur est qu'il faudra un certain temps pour que l'erreur soit renvoyée. Si MySQL pose des problèmes, la réponse devrait être quasi instantanée.
Grim ...
Pouvez-vous expliquer comment cela se fait?
Utilisateur