Чому я не можу підключитися до Amazon RDS після його налаштування?


43

Отже, я щойно створив обліковий запис RDS Amazon. І я запустив екземпляр бази даних.

The "endpoint" is:
abcw3n-prod.cbmbuiv8aakk.us-east-1.rds.amazonaws.com

Чудово! Тепер я намагаюся підключитися до нього з одного з моїх інших екземплярів EC2.

mysql -uUSER -pPASS -habcw3n-prod.cbmbuiv8aakk.us-east-1.rds.amazonaws.com

Але нічого не працює, і воно просто зависає.

Я спробував пінг, і нічого не працює. Нічого не відбувається.

Чи потрібно змінити деякі налаштування?

Відповіді:


45

За замовчуванням RDS не дозволяє будь-яке з'єднання, яке не вказане в групі безпеки (SG). Ви можете дозволити на основі CIDR-адреси або за номером рахунку Amazon, який дозволить будь-якому EC2 під цим обліковим записом отримати доступ до нього.


27

Це "просто висить", оскільки ви не налаштували брандмауер на прийняття з'єднань mySQL з іншого інстанції, оскільки такий пакет відкидається на рівні брандмауера, щоб вирішити це, вам потрібно:

  1. голова в консоль AWS
  2. Вкладка EC2
  3. Запишіть групу безпеки вашого сервера mySQL (добре називайте цей SG-MYSQL поки що)
  4. натисніть групи безпеки ліворуч від консолі
  5. натисніть свою групу в центральному меню SG-MYSQL
  6. натисніть вхідну вкладку
  7. виберіть mySQL зі списку, додайте подробиці вашого клієнтського сервера та збережіть правило

ПРИМІТКА, джерело IP для сервера не буде вашим еластичним IP (у більшості випадків все одно), у вас буде внутрішній ip на пристрої (якщоconfig на linux покаже вам це).


1
Я це зробив на своєму сервері EC2. Я відкрив всі стандартні порти.
Олексій

1
У мене немає жодного екземпляра EC2, і мій RDS не зміг підключитися до зовнішнього світу, поки я цього не зробив.
Умаїр А.

1
відмінний момент використовувати еластичний IP!
користувач1641443

1
Дякую за це Покрокове керівництво все змінило!
Містер T

1
Помилка сервера створила обліковий запис просто для підтвердження цього. СПАСИБІ.
CaptainMarvel

7

Тут багато розмов про групи безпеки, але також перевіряйте:

  • Чи пов’язані підмережі належним чином налаштовані?
  • Чи є підмережі частиною групи маршрутизації, яка здається правильно налаштованою (вказано шлюз Internet тощо)?
  • Чи говорить RDS, що це загальнодоступний доступ?
  • І звичайно перевірте групу безпеки RDS та групу безпеки EC2
    • Не забувайте, що ваш фактичний IP-код джерела може бути внутрішнім IP-адресом (якщо здійснювати доступ внутрішньо через VPC) або зовнішнім IP-адресою (яка може бути IP-адресою маршрутизатора, або інстанційним IP-адресом екземпляра EC2, який відрізняється від його балансира навантаження / еластичного IP) - для усунення несправностей ви можете спробувати дозволити доступ до всіх IP-адрес та портів.

(Моя проблема була групою маршрутизації; при створенні нової підмережі я нехтував додати її до групи маршрутизації із шлюзом.)


Для уточнення: ВСІ підмережі, які ви обираєте в групі підмережі RDS, повинні мати таблиці маршрутизації, у яких вказаний шлюз для Інтернету. Проблема полягала в тому, що дві вибрані нами підмережі були моїми "приватними" підмережами, у яких був NAT-шлюз, вказаний для вихідного трафіку, а не Інтернет-шлюз, і RDS вибрав сервер у одній із цих підмереж. Зверніться до цієї статті, якщо ви не надто знайомі з маршрутизацією: medium.com/@mda590/aws-routing-101-67879d23014d
timetofly

Мене торкнулося те саме питання, що і @timetofly. У мене було одноразове завдання, яке я вирішив запустити на ECS Fargate, який вимагав NAT для завантаження файлів. Налаштування NAT порушило моє підключення до RDS з мого ноутбука. Коли робота закінчилася, я оновив свої підмережі, щоб використовувати лише Інтернет-шлюз, і мені було добре.
vitale232

4

Виправлено.

Довелося надати доступ до нього в групах безпеки в БД ...


6
Чи можете ви детальніше розповісти, що ви зробили для надання доступу?
Девід Чонка

1
У моїй базі даних є група безпеки з одним правилом. Дозволити доступ з будь-якого місця до порту 1433. Не можу підключитися -_-
Чоловік-

1

У мене було те саме питання;

  1. Групи безпеки> майстер rds-launch (або будь-яке ім'я, вибране для db SG)
  2. виберіть вкладку Вхідні> редагувати
  3. додати нову роль
  4. MySQL
  5. Джерело -> вставити aws vm ip (наприклад, 12.3.14.80/32)

працював на мене ...


1

Намагаючись повністю відкрити безпеку для тестування перед тим, як заблокувати доступ, і мій екземпляр бази даних, і мій екземпляр EC2 використовували одну і ту ж групу безпеки, і вхідний, і вихідний порт 3306 були налаштовані так, щоб дозволяти з'єднання з будь-якого місця. Проблема - я зміг підключитися до Aurora зі свого ноутбука, але, як не дивно, не з мого екземпляра EC2, ніби екземпляр EC2 ніде не був. Рішенням було додати ще одне правило вхідного mysql / Aurora та вказати той самий ідентифікатор групи безпеки , що і джерело вхідних з'єднань. У моїй групі безпеки є правило, яке посилається на себе, і я можу підключитися або зі свого ноутбука, або з моєї інстанції EC2.


-3

Правило вхідного маршруту mysql має бути як нижче

зображення це проблема із групою безпеки.


3
Чи є причина, коли ви натикаєтесь на запитання п'ятирічного віку, щоб відповісти на нього тією ж відповіддю, яка існує вже роками? Надання 0.0.0.0/0доступу також 3306не є чудовою ідеєю.
ceejayoz

Я намагався показати користувачеві, що вони повинні змінити, і як вони можуть змінитися, ви знаєте, що багато користувачів, як я, не можуть вирішити проблему, прочитавши вищезгадані анс. це може вам не допомогти, але користувачі шукають це. ви віддали голос, оскільки це вам не допомагає.
Nirmal Dhara

3
Мій відгук походить від того, що люди повинні відкрити MySQL на весь Інтернет. Це небезпечний підхід.
ceejayoz

зрозумів. я просто показую місце, де вони можуть редагувати групи безпеки, вони можуть вибирати зі спадного меню все, що хочуть.
Nirmal Dhara
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.