Ho appena installato un nuovo server Ubuntu con mysql (percona 5.5), ma rifiuta di accettare connessioni da host remoti
Ecco cosa succede se provo a connettermi a questo server in remoto:
mysql -h10.0.0.2 -uroot -pmypassowrd
ERROR 2003 (HY000): Can't connect to MySQL server on '10.0.0.2' (111)
telnet 10.0.0.2 3306
Trying 10.0.0.2...
telnet: Unable to connect to remote host: Connection refused
Quando ho verificato se mysql ascolta le connessioni remote ho visto questo:
sudo netstat -ntlup | grep mysql
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 127018/mysqld
Come puoi vedere dice 127.0.0.1:3306che significa "Accetto solo connessioni locali".
Ho controllato il mio skip_networkinge le bind-addressvariabili - tutto è spento:
mysql> show variables like '%skip_networking%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| skip_networking | OFF |
+-----------------+-------+
1 row in set (0.00 sec)
mysql> show variables like '%bind%';
Empty set (0.00 sec)
Ho un altro server con la stessa configurazione e funziona benissimo:
sudo netstat -ntlup | grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2431/mysqld
Quale può essere la ragione di ciò? Come faccio a far rispondere mysql alle connessioni remote?
bind_addressè disponibile solo dalla versione 5.6 ( bugs.mysql.com/bug.php?id=44355 ), quindi restituirà un set vuoto nella v5.5 anche se è impostato.