MySQL 5.7-Bindeadresse funktioniert nicht

17

Ich habe immer erfolgreich eine Remote-Verbindung für MySQL 5.5 eingerichtet.

Heute habe ich einen neuen Server mit Ubuntu 16.04 und MySQL 5.7 installiert. Aber aus einigen Gründen kann ich diese MySQL-Installation nicht dazu bringen, andere Hosts aber anzuhören 127.0.0.1.

Hier ist mein /etc/mysql/conf.d/mysql.cnf:

[mysqld]
bind-address = 0.0.0.0

Ich konnte von einem Remote-Host aus keine Verbindung zu diesem MySQL-Server herstellen, und als ich my überprüfte netstat, stellte ich fest, dass MySQL localhostnur Verbindungen von abhört .

lsof -Pni :3306 Ausgabe ist:

COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  5302 mysql   25u  IPv4  37280      0t0  TCP 127.0.0.1:3306 (LISTEN)

Worin besteht das Problem?

Hast
quelle
Hast du Mysql gebounct? Was ist die Ausgabe von netstat -lntp?
Linuxx
@Linuxx Ich habe sogar die ganze Maschine neu gestartet. tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 13050/mysqld
Hast
Ich nehme an, Sie haben diese Zeile in diese Datei eingefügt. Entfernen Sie diese Zeile, bearbeiten Sie die Datei /etc/mysql/mysql.conf.d/mysqld.cnf und ändern Sie dort den Parameter.
Linuxx
1
@Linuxx Das hat wie von Zauberhand funktioniert :) Ich habe nicht bemerkt, dass es noch ein anderes * .conf.d-Verzeichnis gibt. Grundsätzlich behält 5.7 [mysql] config im conf.d-Verzeichnis bei, wohingegen [mysqld] configs in der mysql.conf.d aufbewahrt werden. Vielen Dank! Bitte geben Sie eine Antwort, damit ich sie annehmen kann.
Hast
1
Ich habe die Bindungsadresse sowohl auf /etc/mysql/mysql.conf.d/mysqld.cnf als auch auf /etc/mysql/conf.d/mysql.cnf geändert. 0.1: 3306 ", wenn ich <netstat -tulpen
Chepech

Antworten:

38

Sie haben das MySQL-Paket so geändert, dass sich der Bind-Parameter jetzt in /etc/mysql/mysql.conf.d/mysqld.cnf befindet. Bitte ändern Sie den Bind-Parameter dort und entfernen Sie alles, was Sie in /etc/mysql/conf.d/mysql.cnf platziert haben.

Linuxx
quelle
Das ist aber lächerlich. Der Zweck von "conf.d" bestand darin, die vom Paket bereitgestellten Standardeinstellungen NICHT zu bearbeiten und durch Ihre eigene Konfiguration zu überschreiben. Aber da "mysql.conf.d" jetzt unsere überschreibt, gibt es keinen zuverlässigen Weg, um sicherzustellen, dass unsere endlich verfügbar sind, es sei denn, wir bearbeiten "mysql.conf.d / mysqld.cnf".
Kenn
@kenn: füge stattdessen deine config unter mysql.conf.d / hinzu und nenne sie "x-something"
Bell
3
Klar, aber wozu dient dann "conf.d"? Handelt es sich bei "mysql.conf.d" nicht um vom Paket bereitgestellte Standardeinstellungen, die von "conf.d" überschrieben werden sollen? Ich denke, die Ladereihenfolge von "conf.d" und "mysql.conf.d" sollte in "/etc/mysql/my.cnf" auf der MySQL-Paketebene umgekehrt werden.
Kenn