Adres powiązania MySQL 5.7 nie działa

17

Zawsze pomyślnie konfigurowałem zdalne połączenie dla MySQL 5.5.

Dzisiaj zainstalowałem nowy serwer z Ubuntu 16.04 i MySQL 5.7. Ale z niektórych powodów nie mogę zmusić tej instalacji MySQL do słuchania innych hostów, ale 127.0.0.1.

Oto moje /etc/mysql/conf.d/mysql.cnf:

[mysqld]
bind-address = 0.0.0.0

Nie mogłem połączyć się z tym serwerem MySQL ze zdalnego hosta, a kiedy to sprawdziłem netstat, zdałem sobie sprawę, że MySQL nasłuchuje localhosttylko z połączeń .

lsof -Pni :3306 wyjście to:

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

Jaki jest problem?

Pospiesznie
źródło
Czy odbiłeś mysql? Jaka jest wydajność netstat -lntp?
Linuxx
@ Linuxx Nawet zrestartowałem całą maszynę. tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 13050/mysqld
Hast
Zakładam, że dodałeś tę linię do tego pliku. Usuń tę linię i edytuj plik /etc/mysql/mysql.conf.d/mysqld.cnf i zmień tam parametr.
Linuxx
1
@Linuxx To działało jak magia :) Nie zauważyłem, że istnieje jeszcze inny katalog * .conf.d. Tak więc w zasadzie 5.7 przechowuje konfigurację [mysql] w katalogu conf.d, podczas gdy konfiguracje [mysqld] są przechowywane w mysql.conf.d. Dziękuję Ci! Proszę, odpowiedz, więc zaakceptuję.
Hast
1
Zmieniłem adres powiązania zarówno na /etc/mysql/mysql.conf.d/mysqld.cnf, jak i /etc/mysql/conf.d/mysql.cnf, zrestartowałem serwer, ale nadal widzę „tcp 0 0 127.0. 0.1: 3306 ", gdy uruchamiam <netstat -tulpen
Chepech

Odpowiedzi:

39

Zmienili pakiet MySQL, tak aby parametr powiązania był teraz w /etc/mysql/mysql.conf.d/mysqld.cnf. Zmień tam parametr powiązania i usuń wszystko, co umieściłeś w /etc/mysql/conf.d/mysql.cnf.

Linuxx
źródło
To niedorzeczne. Celem „conf.d” NIE było edytowanie wartości domyślnych dostarczonych przez pakiet i nadpisywanie przez własną konfigurację. Ale ponieważ teraz „mysql.conf.d” zastępuje nasz, nie ma niezawodnego sposobu, aby upewnić się, że nasz w końcu nadejdzie, chyba że edytujemy „mysql.conf.d / mysqld.cnf”.
kenn
@kenn: dodaj swoją konfigurację pod mysql.conf.d / i nadaj mu nazwę „x-coś”
Bell
3
Jasne, ale jaki jest sens „conf.d”? Czy „mysql.conf.d” to wartości domyślne dostarczone przez pakiet, które powinny zostać zastąpione przez „conf.d”? Myślę, że kolejność ładowania „conf.d” i „mysql.conf.d” powinna zostać odwrócona w „/etc/mysql/my.cnf” na poziomie pakietu MySQL.
hodowla