Właśnie zainstalowałem nowy serwer Ubuntu z mysql (Percona 5.5), ale odmawia przyjmowania połączeń ze zdalnych hostów
Oto, co się stanie, jeśli spróbuję połączyć się z tym serwerem zdalnie:
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
Kiedy sprawdziłem, czy mysql nasłuchuje połączeń zdalnych, zobaczyłem to:
sudo netstat -ntlup | grep mysql
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 127018/mysqld
Jak widać, jest napisane, 127.0.0.1:3306
co oznacza „Akceptuję tylko połączenia lokalne”.
Sprawdziłem moje skip_networking
i bind-address
zmienne - wszystko jest wyłączone:
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)
Mam inny serwer z absolutnie taką samą konfiguracją i działa świetnie:
sudo netstat -ntlup | grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2431/mysqld
Co może być tego przyczyną? Jak zmusić mysql do reagowania na połączenia zdalne?
bind_address
jest dostępna tylko od wersji 5.6 ( bugs.mysql.com/bug.php?id=44355 ), więc zwróci pusty zestaw w wersji 5.5, nawet jeśli jest ustawiony.