Я щойно встановив свіжий сервер ubuntu з mysql (percona 5.5), але він відмовляється приймати з'єднання від віддалених хостів
Ось що відбувається, якщо я спробую віддалено підключитися до цього сервера:
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
Коли я перевірив, чи mysql слухає віддалені з'єднання, я побачив таке:
sudo netstat -ntlup | grep mysql
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 127018/mysqld
Як ви бачите, це говорить, 127.0.0.1:3306
що означає "Я приймаю лише локальні з'єднання".
Я перевірив свої skip_networking
та bind-address
змінні - все вимкнено:
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)
У мене є ще один сервер з абсолютно таким же конфігурацією, і він чудово працює:
sudo netstat -ntlup | grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2431/mysqld
Що може бути причиною цього? Як змусити mysql реагувати на віддалені з'єднання?
bind_address
доступна лише з версії 5.6 ( bugs.mysql.com/bug.php?id=44355 ), тому вона поверне порожній набір у v5.5, навіть якщо вона встановлена.