Verbindung zum MySQL-Server kann nicht hergestellt werden Fehler 111 [geschlossen]

152

Ich habe den MySQL-Server unter der Linux-Box IP = 192.168.1.100 installiert, aber wenn ich versuche, eine Verbindung zu dieser IP herzustellen, ist dies immer ein Fehler (111). aber benutze localhost und 127.0.0.1 ist OK.

Bier @ Bier-Laptop # ifconfig | grep "inet addr"
          inet addr: 127.0.0.1 Maske: 255.0.0.0
          inet addr: 192.168.1.100 Bcast: 192.168.1.255 Maske: 255.255.255.0

Bier @ Bier-Laptop # mysql -ubeer -pbeer -h192.168.1.100
FEHLER 2003 (HY000): Es kann keine Verbindung zum MySQL-Server unter '192.168.1.100' (111) hergestellt werden.

Bier @ Bier-Laptop # mysql -ubeer -pbeer -hlocalhost
Willkommen beim MySQL-Monitor. Befehle enden mit; oder \ g.
Ihre MySQL-Verbindungs-ID lautet 160
Serverversion: 5.1.31-1ubuntu2 (Ubuntu)

Geben Sie 'help' ein. oder '\ h' um Hilfe. Geben Sie '\ c' ein, um den Puffer zu löschen.

mysql> 

Bier @ Bier-Laptop # mysql -ubeer -pbeer -h127.0.0.1
Willkommen beim MySQL-Monitor. Befehle enden mit; oder \ g.
Ihre MySQL-Verbindungs-ID lautet 161
Serverversion: 5.1.31-1ubuntu2 (Ubuntu)

Geben Sie 'help' ein. oder '\ h' um Hilfe. Geben Sie '\ c' ein, um den Puffer zu löschen.

mysql> 

Verbinden Sie von einem anderen Computer es auch Fehler 111.

ein anderer @ ein anderer-Laptop # mysql -ubeer -pbeer -h192.168.1.100
FEHLER 2003 (HY000): Es kann keine Verbindung zum MySQL-Server unter '192.168.1.100' (111) hergestellt werden.

Wie Unterschied zwischen der Verwendung von localhost / 127.0.0.1 und 192.168.1.100 in diesem Fall. Ich weiß nicht, wie ich von einem anderen Computer aus eine Verbindung zu dieser Datenbank herstellen soll.

Hilfe bitte. Danken.

Wearetherock
quelle

Antworten:

263

Dies bedeutet wahrscheinlich, dass Ihr MySQL-Server nur die localhost-Schnittstelle überwacht.

Wenn Sie Zeilen wie diese haben:

bind-address = 127.0.0.1

In Ihrer my.cnfKonfigurationsdatei sollten Sie sie kommentieren (am Anfang der Zeilen ein # hinzufügen) und MySQL neu starten.

sudo service mysql restart

Dazu müssen Sie natürlich der Administrator des Servers sein.

Pascal MARTIN
quelle
6
offensichtlich hat er nicht die skip-networkingLinie ;-)
Michael Krelin - Hacker
11
Wie man MySQL kennt my.cnf Ort: stackoverflow.com/questions/2482234/…
Cyril Jacquart
2
Aber was passiert, wenn Sie über die MySQL-Workbench eine Verbindung herstellen können? Ich habe das gleiche Problem.
George Pamfilis
3
Ich folgte dem, was in der Antwort angegeben ist, konnte es aber immer noch nicht zum Laufen bringen. Ich habe dann herausgefunden, dass sich der Parameter "Bindungsadresse" in der Datei "/etc/mysql/mysql.conf.d/mysqld.cnf" befindet. Kommentierte es da draußen und es hat funktioniert!
Yahya
3
Neuere Versionen von Ubuntu> = 16.04 haben möglicherweise diese Zeile in /etc/mysql/mysql.conf.d/myqld.cnf
dellasavia
38

111 bedeutet, dass die Verbindung abgelehnt wurde , was wiederum bedeutet, dass Ihr mysqld nur die localhostSchnittstelle abhört .

Um dies zu ändern, sollten Sie sich den bind-addressWert im mysqldAbschnitt Ihrer my.cnfDatei ansehen .

Michael Krelin - Hacker
quelle
Es lohnt sich auch zu überprüfen, ob die Portnummer gültig ist. Nicht übereinstimmend :3306und :3307kann auch zu 111 Fehlern führen.
NXT
2
@NXT, ich weiß nicht einmal, ob MySQL verschiedene Ports auf verschiedenen Schnittstellen überwachen kann, aber es ist ein sehr unwahrscheinliches Szenario (angesichts der Symptome im ursprünglichen Beitrag), selbst wenn dies möglich ist. Dann kann es Firewall-Regeln usw. geben. Es gibt viele Möglichkeiten, dies zu erreichen, aber die Wahrscheinlichkeit ist unterschiedlich ...
Michael Krelin - Hacker
Das heißt nicht immer so. Meine my.cnfDateien haben keine bind-addressoder skip-networkingZeilen, und dennoch erhalte ich den gleichen Fehler. Auch keine Firewall installiert. Keine Ideen mehr.
Deleet
Nun, 111 bedeutet immer, dass die Verbindung abgelehnt wurde :) Und der Nur-Host ist in diesem speziellen Fall auf andere Beweise zurückzuführen. Wenn Sie weitere Details zu Ihrem Fall angeben, kann ich Ihnen möglicherweise helfen? Abhängig von Ihrem heutigen System ist die Konfiguration wahrscheinlich auf mehrere Dateien verteilt.
Michael Krelin - Hacker
10

Wenn alle vorherigen Antworten keine Lösung lieferten, sollten Sie Ihre Benutzerrechte überprüfen.

Wenn Sie sich rootbei MySQL anmelden könnten , sollten Sie Folgendes hinzufügen:

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 ;

Versuchen Sie dann erneut, eine Verbindung mit herzustellen mysql -ubeer -pbeer -h192.168.1.100. Es sollte funktionieren.

xnome
quelle
17
Ich glaube nicht, dass ein Fehler im Zusammenhang mit Benutzerrechten den Fehler 111 ergeben würde.
ufk
1
Es hat tatsächlich funktioniert und ich habe auch 111 Fehler bekommen.
Borjante
Dies scheint eine bessere Lösung zu sein, als MySQL für das gesamte Netzwerk zu öffnen, indem die Zeile 127.0.0.1 auskommentiert wird. Es sollte die beste Lösung sein.
Nyxee
7

Wenn Sie cPanel / WHM ausführen, stellen Sie sicher, dass IP in der Firewall auf der Whitelist steht. Sie müssen diese IP auch zur Remote-SQL-IP-Liste in dem cPanel-Konto hinzufügen, zu dem Sie eine Verbindung herstellen möchten.

Dragos.
quelle
1
Ein guter Hinweis darauf, ob es sich um eine Firewall handelt, die den Fehler verursacht, ist, dass es eine Weile dauert, bis der Fehler zurückgegeben wird. Wenn MySQL Probleme verursacht, sollte die Antwort ziemlich sofort erfolgen.
Grimmig ...
Können Sie erklären, wie das gemacht wird?
Benutzer