Ошибка подключения к порту 3306 для приложения mysql

Вопрос:Приложение Java, с которым я работаю, должно записывать полученные данные в базу данных mysql, но всякий раз, когда я его запускаю, я получаю следующее исключение: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure Со следующей причиной: Caused by: java.net.ConnectException: Connection refused Естественно, моим следующим шагом было протестировать порт, с которым mysql пытался подключиться (3306). $ telnet localhost 3306 Trying

Вопрос:

Приложение Java, с которым я работаю, должно записывать полученные данные в базу данных mysql, но всякий раз, когда я его запускаю, я получаю следующее исключение:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Со следующей причиной:

Caused by: java.net.ConnectException: Connection refused

Естественно, моим следующим шагом было протестировать порт, с которым mysql пытался подключиться (3306).

$ telnet localhost 3306 Trying 127.0.0.1… telnet: Unable to connect to remote host: Connection refused

Мой следующий шаг состоял в том, чтобы увидеть, прослушивает ли порт 3306 вообще.

$ netstat -an|grep 3306 tcp 0 0 69.164.214.18:3306 0.0.0.0:* LISTEN

Таким образом, порт прослушивает, но не принимает соединения?
Должен признаться, я не знаю об этом много, но кто-нибудь знает, что здесь происходит?

Лучший ответ:

Я понял это. Мне нужно было подключиться к mysql извне, но моя программа пыталась получить к нему доступ локально.

Ответ №1

Контрольный список:

  • Правило брандмауэра. Если ваш сервер отказывает/не разрешает порт 3306, не удается его подключить.
  • Bind Address: если ваш адрес связывания 127.0.0.1 в конфигурации MySQL, вы должны изменить на 0.0.0.0 в [mysqld] на /etc/mysql/my.cnf
  • Restart Service: вам нужно запустить команду ‘service mysql restart’

Удачи.

Ответ №2

@Walker Holahan,

Не могли бы вы объяснить это больше, пожалуйста? Я тоже застрял. Я не могу подключиться к серверу mysql 8, сидящему на моем сервере centos 7, с моего компьютера Mac через верстак.

Я уже установил bind-address в 0.0.0.0 и публично добавил порт 3306 для брандмауэра.

У меня также есть пользователь root, который может получить доступ к любому IP-адресу (‘root’ @’%’)

Когда я запустил “telnet 173.236.105.231 3306”, я получил сообщение об ошибке “Соединение с 173.236.105.231… Не удалось открыть соединение с хостом, порт 3306: сбой соединения”

Оцените статью
Добавить комментарий