Я пытаюсь подключиться к RDS MySQL с Linux-машины. Когда я проверяю соединение с telnet, сеанс telnet успешно завершен но когда я пытаюсь подключиться к базе данных следующей командой
mysql -h hostname -uusername -ppassword
я не могу получить доступ и команда застревает. В конфигурации RDS для общедоступной доступности установлено значение «Да», и я добавил правило для входящих подключений в группу безопасности, разрешающее доступ со всех адресов.
Я предполагаю, что когда эта проблема будет решена, я смогу подключиться через jdbc, который сейчас тоже не работает.
Спасибо помощникам!
Обновить: присоединение результатов выполненных мной команд:
Поскольку проверка соединения с сокетом прошла успешно, но вы не можете подключиться к клиенту mysql, взгляните на вывод netstat, чтобы узнать, в каком состоянии находится соединение (замените x.x.x.x фактическим IP-адресом экземпляра RDS):
netstat -an | grep x.x.x.x
Если вы видите состояние «SYN» при использовании клиента MySQL, возможно, вы столкнулись с проблемой MTU.
RDS, на момент написания, может не поддерживать пакеты ICMP, используемые для PMTUD (https://en.wikipedia.org/wiki/Path_MTU_Discovery#Problems_with_PMTUD). Это может быть проблемой, если вы пытаетесь получить доступ к RDS или RedShift в VPC из классического экземпляра ec2 через ClassicLink. Попробуйте уменьшить MTU, выполнив следующие действия, а затем повторите попытку:
sudo ip link show
# take note of the current MTU (likely 1500 or 9001)
sudo ip link set dev eth0 mtu 1400
Если более низкий MTU сработал, не забудьте обратиться в службу поддержки клиентов AWS за помощью и упомянуть, что вы видите проблему MTU при попытке подключиться к своему экземпляру RDS. Это может произойти, если пакеты TCP обернуты инкапсуляцией для туннелирования, что приведет к меньшему используемому MTU для пакетных данных / полезной нагрузки. Уменьшение MTU позволяет упакованным пакетам по-прежнему соответствовать лимиту.
Если это не сработало, установите для MTU значение по умолчанию и обратитесь в службу поддержки AWS для дальнейшего устранения неполадок.
Если вы не можете подключиться к своему экземпляру БД MySQL, две распространенные причины сбоев подключения к новому экземпляру БД:
Экземпляр БД был создан с использованием группы безопасности, которая не авторизует подключения с устройства или экземпляра Amazon EC2, на котором запущено приложение или служебная программа MySQL. Если экземпляр БД был создан в VPC, он должен иметь группу безопасности VPC, которая авторизует соединения. Если экземпляр БД был создан вне VPC, он должен иметь группу безопасности БД, которая авторизует соединения. Пожалуйста, обратитесь к этой странице VPC и RDS
Экземпляр БД был создан с использованием порта по умолчанию 3306, и в вашей компании есть правила брандмауэра, блокирующие подключения к этому порту с устройств в сети вашей компании. Чтобы исправить этот сбой, воссоздайте экземпляр с другим портом.