Порт 3306, похоже, закрыт на моем сервере Ubuntu

Порт 3306, похоже, закрыт на моем сервере Ubuntu

У меня дваВПСсерверы, и оба имеютMySQLустановлены, один для тестирования и один для разработки. Один из моих серверов не позволяет мне подключаться извне. С пользователем;

'мойтестовыйпользователь'@'%'

В соответствии соткрытый порт искатель, порт 3306 для сервера-нарушителя, похоже, закрыт. У меня есть собственные программы C++ и Java, которые слушают произвольные порты без каких-либо проблем. Почему это происходит и как это исправить?

Установлен Ubuntu 11.10 (GNU/Linux 2.6.32-042stab072.10 x86_64)

Результаты netstat -tupleна каждом сервере

Сервер-нарушитель

tcp        0      0 localhost.lo:submission *:*                     LISTEN      root       39967664    -

Рабочий сервер

tcp        0      0 *:mysql                 *:*                     LISTEN      mysql      1847519288  -

решение1

Проблема была в том, что сервер прослушивал только внутренние данные.

Удаление строки bind-address 127.0.0.1решило /etc/mysql/my.cnfпроблему.

В более новых версиях Ubuntu (≥16.04) эта строка может быть в /etc/mysql/mysql.conf.d/mysqld.cnf.

решение2

Мой совет: если вы уверены, что порты закрыты (я нахожу странным, что на VPS этот порт закрыт), измените файл конфигурации MySQL, чтобы использовать другой.

Просто откройте файл конфигурации в терминале, sudo nano /etc/mysql/mysql.confи найдите [mysqld]раздел. В нем найдите строку, которая читается как port = 3306. Измените его на другой неиспользуемый порт и сохраните файл.

Затем просто перезапустите VPS или перезапустите службу, например sudo service mysql restart.

Хочу отметить, что если файл mysql.confотсутствует в указанном выше месте, он может находиться в других местах:

/etc/my.conf
/etc/my.cnf
/etc/mysql/my.conf

А если serviceкоманда не сработает, то сделайте так:

sudo /etc/init.d/mysql restart

Если проблема не исчезнет, ​​то в моем случае я бы проверилiptables(Я бы на самом деле удалил все в iptables, чтобы начать все заново, если бы это было возможно) или любую другую опцию с включенным брандмауэром.

Поскольку это VPS, я бы также проверил панель управления VPS, чтобы узнать, есть ли там опция, которая может блокировать порты.

Кроме того, я бы запустил nmapна VPS, чтобы посмотреть, какие порты вы открыли. Вам нужно запустить его извне VPS, чтобы посмотреть, какие порты они открыли.

netstat -tuplenТакже неплохо было бы посмотреть, какие порты открыты на сервере и какие из них находятся в режиме LISTEN.

решение3

Я исправил это, изменив значение bind-address 127.0.0.1на bind-address 0.0.0.0in /etc/mysql/mysql.conf.d, чтобы MySQL прослушивал все порты.

Также я настроил учетную запись пользователя mysql для удаленного использования. Подробнее см.Хосту «xxx.xx.xxx.xxx» не разрешено подключаться к этому серверу MySQL.

решение4

Может случиться так, что ваша конфигурация находится в каталоге /etc/mysql/mysql.conf.d/mysqld.cnf, проверьте, если это не так.

Связанный контент