У меня есть два VPS- сервера, и на обоих установлен MySQL , один для тестирования и один для разработки. Один из моих серверов не позволит мне подключиться извне. С пользователем;
'Mytestuser' @ '%'
Согласно определителю открытого порта , порт 3306 для сервера-нарушителя представляется закрытым. У меня есть программы C ++ и Java, которые я слушаю на произвольных портах без каких-либо проблем. Почему это происходит и как я могу это исправить?
Ubuntu установлен 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 -
/etc/mysql/my.cnf
нет/etc/mysql/my.conf
.Мое предложение, если вы уверены, что порты закрыты (я нахожу странным, что VPS закрывает этот порт), это изменить файл конфигурации MySQL, чтобы использовать другой.
Просто откройте файл конфигурации в терминале
sudo nano /etc/mysql/mysql.conf
и найдите[mysqld]
раздел. В нем ищите строчку, которая гласитport = 3306
. Измените его на другой неиспользуемый порт и сохраните файл.Затем просто либо перезапустите VPS, либо перезапустите службу, как
sudo service mysql restart
.Просто отметим, что если файл
mysql.conf
не в том, что я упоминал выше, он может быть в следующих местах:И если
service
команда не работает, то сделайте это:Если проблема не устраняется, то в моем случае я бы проверил iptables (я бы на самом деле удалил все в iptables, чтобы начать все заново, если это возможно) или любой другой параметр с включенным межсетевым экраном.
Поскольку это VPS, я бы также проверил панель управления VPS, чтобы узнать, есть ли у нее опция, которая может блокировать порты.
Кроме того, я бы запустил
nmap
VPS, чтобы посмотреть, какие порты вы открыли. Вам нужно запустить его снаружи VPS, чтобы увидеть, какие порты они открыли.netstat -tuplen
Также полезно посмотреть, какие открытые порты у вас на сервере, а какие находятся в режиме LISTEN.источник
Я исправил это, изменив
bind-address 127.0.0.1
наbind-address 0.0.0.0
in/etc/mysql/mysql.conf.d
(чтобы MySQL прослушивал все порты).Кроме того, я настроил учетную запись пользователя mysql для удаленного использования (см. Https://stackoverflow.com/a/24171107/132374 ).
источник
Я использую этот метод:
Нет необходимости изменять другие файлы конфигурации, и по умолчанию не открываются дополнительные порты.
источник
sudo ufw allow 3306/tcp
Я пытался редактировать, но не позволил мнеМожет случиться, что ваша конфигурация находится в каталоге
/etc/mysql/mysql.conf.d/mysqld.cnf
, убедитесь, что это не так.источник