MySQL wird nach dem Festlegen der externen Bindungsadresse nicht gestartet

7

Ich möchte den Remotezugriff auf meinen MySQL-Server aktivieren, daher habe ich die Bindungsadresse unter [mysqld] festgelegt. Diese sieht folgendermaßen aus:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
bind-address=**.**.**.66
port=3306
# skip-networking
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

Wenn ich die Bindungsadresse kommentiere, startet der Server normal. Wenn ich es auskommentiere, wird es jedoch nicht neu gestartet. Der Port ist offen und hört zu.

Können Sie mir bitte helfen, das zu klären? Vielen Dank

Vasilis
quelle
**.**.**.66ist keine gültige IP-Adresse ...
womble
@womble, was? Ist das nicht nur eine Verschleierung der Standardadresse?
Zoredache
@Zoredache: Wir wissen es nicht, oder? Vielleicht hat er das wirklich eingegeben, und deshalb funktioniert es nicht. Die korrekte Methode zum Verschleiern von Adressen ist die Verwendung der RFC5737-Dokumentationsnetzwerke.
womble
1
Wahrscheinlich sollte ich das klarstellen, in der eigentlichen my.cnf-Datei verwende ich die echte IP-Adresse. Ich benutze * nur, um es hier zu verstecken.
Vasilis

Antworten:

8

Warum müssen Sie Ihrer Meinung bind-addressnach den Fernzugriff aktivieren?

Versuchen Sie, den Befehl ohne die Option Bindungsadresse auszuführen netstat -ntlp | grep 3306. Wenn Sie eine Ausgabe wie unten sehen, überwacht MySQL jede IP-Adresse, die dem Computer zugeordnet ist.

tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      23465/mysqld 

Sie benötigen die Bindeadresse nur dann wirklich, wenn Sie eine bestimmte IP abhören möchten. Wenn Sie auf Anfragen zu allen Adressen warten möchten, sollten Sie diese auskommentieren oder auf setzen 0.0.0.0. Einige Paketversionen von MySQL enthalten Start- / Wartungsskripte, die versuchen, unter 127.0.0.1 auf MySQL zuzugreifen. Wenn Sie die Option "Bindungsadresse" verwenden, wird MySQL nur an diese bestimmte IP-Adresse gebunden und sonst nichts, wodurch möglicherweise alle Skripte beschädigt werden, über die Sie derzeit verfügen.

Zoredache
quelle
netstat: Option -p erfordert ein Argument
Almo
Für die Net-Tools-Version von netstat unter Linux ist kein Argument erforderlich. Auf welchem ​​Betriebssystem laufen Sie? Ich weiß, dass netstat unter Windows und unter BSD unterschiedliche Syntax / Optionen hat.
Zoredache
3

Vielleicht hilft das einigen Leuten:

Es scheint, dass bind-addressder Dienst nicht neu gestartet werden kann, wenn er an zwei Stellen deklariert wird.

Vielleicht haben Sie Ihre /etc/conf/my.cnfDatei schnell gescannt und kein zweites Erscheinungsbild von gesehen bind-address. Beachten Sie jedoch, dass die Datei möglicherweise eine !includedirDirektive enthält und einige der enthaltenen Dateien eine zweite enthalten können bind-address.

Meetamit
quelle
1

Stellen Sie sicher, dass noch keine blockierte mysqld-Instanz gestartet wurde. Prüfen

ps aux|grep mysqld

und töte alle Prozesse mit

kill -9

Versuchen Sie dann erneut, mysqld zu starten. Achten Sie auf mysqld-Prozesse im Status "Sl".

Marco Marsala
quelle
und stellen Sie sicher, dass der Himmel nicht fällt und das Stromnetz noch lebt. Atme ich noch
Küken