MySQL 5.7 bind-address non funziona


17

Ho sempre impostato correttamente una connessione remota per MySQL 5.5.

Oggi ho installato un nuovo server con Ubuntu 16.04 e MySQL 5.7. Ma per alcuni motivi, non posso fare in modo che questa installazione di MySQL ascolti altri host ma 127.0.0.1.

Ecco il mio /etc/mysql/conf.d/mysql.cnf:

[mysqld]
bind-address = 0.0.0.0

Non sono riuscito a connettermi a questo server MySQL da un host remoto e quando ho controllato il mio netstat, mi sono reso conto che MySQL ascolta localhostsolo le connessioni .

lsof -Pni :3306 l'output è:

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

Qual è il problema?


Hai fatto rimbalzare mysql? Qual è l'output di netstat -lntp?
Linuxx

@Linuxx Ho anche riavviato l'intera macchina. tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 13050/mysqld
Hast

Presumo tu abbia aggiunto quella riga in quel file. Rimuovere quella riga e modificare il file /etc/mysql/mysql.conf.d/mysqld.cnf e modificare qui il parametro.
Linuxx,

1
@Linuxx Funzionava come per magia :) Non ho notato che c'è ancora un'altra directory * .conf.d. Quindi, in sostanza, 5.7 mantiene [mysql] config nella directory conf.d, mentre le configurazioni [mysqld] sono mantenute nella mysql.conf.d. Grazie! Per favore, rispondi, quindi lo accetterò.
Hast

1
Ho cambiato l'indirizzo di bind su entrambi /etc/mysql/mysql.conf.d/mysqld.cnf e /etc/mysql/conf.d/mysql.cnf, riavviato dal server ma vedo ancora "tcp 0 0 127.0. 0.1: 3306 "quando eseguo <netstat -tulpen
Chepech

Risposte:


39

Hanno cambiato il pacchetto MySQL in modo che il parametro bind sia ora in /etc/mysql/mysql.conf.d/mysqld.cnf. Modifica qui il parametro bind e rimuovi tutto ciò che hai inserito in /etc/mysql/conf.d/mysql.cnf.


Questo è ridicolo però. Lo scopo di "conf.d" era di NON modificare le impostazioni predefinite fornite dal pacchetto e sovrascrivere la propria configurazione. Ma poiché ora "mysql.conf.d" sta scavalcando il nostro, non c'è modo affidabile per assicurarsi che il nostro arrivi finalmente a meno che non modifichiamo "mysql.conf.d / mysqld.cnf".
gennaio

@kenn: aggiungi la tua configurazione in mysql.conf.d / invece e chiamala "x-qualcosa"
Bell

3
Certo, ma che senso ha "conf.d" allora? "Mysql.conf.d" non è un valore predefinito fornito dal pacchetto, che dovrebbe essere sovrascritto da "conf.d"? Penso che l'ordine di caricamento di "conf.d" e "mysql.conf.d" dovrebbe essere invertito in "/etc/mysql/my.cnf" a livello di pacchetto MySQL.
kenn,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.