Vraag Waarom kan ik geen verbinding maken met Amazon RDS nadat ik deze heb ingesteld?


Dus ik heb zojuist het Amazon RDS-account gemaakt. En ik begon een instantie van de database.

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

Super goed! Nu probeer ik er verbinding mee te maken vanuit een van mijn andere EC2-instanties.

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

Maar niets werkt en het blijft hangen.

Ik heb geprobeerd het te pingen en niets werkt ook. Niks gebeurt.

Moet ik sommige instellingen wijzigen?


40
2018-04-25 20:09


oorsprong




antwoorden:


Standaard staat RDS geen verbindingen toe die niet zijn opgegeven binnen de beveiligingsgroep (SG). U kunt toestaan ​​op basis van CIDR-adressering of op accountnummer van Amazon, waardoor elke EC2 onder dat account toegang heeft.


41
2018-04-25 22:46





Het is "gewoon hangend" omdat u de firewall niet hebt geconfigureerd om mySQL-verbindingen van uw andere instantie te accepteren, waardoor het pakket op firewallniveau wordt verwijderd, om dit op te lossen, moet u het volgende doen:

  1. ga naar je AWS-console
  2. EC2 tabblad
  3. Noteer de beveiligingsgroep van uw mySQL-server (noem deze SG-MYSQL nu nog wel)
  4. klik op beveiligingsgroepen aan de linkerkant van de console
  5. klik op je groep in het middelste menu SG-MYSQL
  6. klik op het inkomende tabblad
  7. selecteer mySQL in de lijst, voeg de gegevens van uw clientserver toe en sla de regel op

OPMERKING: het bron-IP voor de server zal niet uw elastische IP zijn (in de meeste gevallen sowieso), u zult een interne ip op het apparaat hebben (ifconfig on linux zal dit laten zien).


25
2018-04-25 20:17



Ik heb dat gedaan op mijn EC2-server. Ik heb alle standaard poorten geopend. - Alex
Ik heb geen EC2-instantie en mijn RDS kon geen verbinding maken met de buitenwereld totdat ik dit deed. - Neutralizer
uitstekend punt om elastische IP te gebruiken! - user1641443
Bedankt hiervoor. De walkthrough heeft het verschil gemaakt! - Mr T
Werkt perfect! Bedankt!!!! - deepakssn


Veel gesproken over beveiligingsgroepen, maar controleer ook:

  • Lijken de bijbehorende Subnetten correct geconfigureerd?
  • Zijn de subnetten onderdeel van een routeringsgroep die correct is geconfigureerd (gespecificeerde internetgateway, enz?)
  • Zegt de RDS dat het openbaar toegankelijk is?
  • En natuurlijk de RDS Security Group en EC2 Security Group controleren
    • Vergeet niet dat uw werkelijke bron-IP een intern IP-adres is (als u intern toegang via een VPC verkrijgt) of een extern IP-adres (mogelijk het IP-adres van een router of een instantie IP van een EC2-instantie die zich onderscheidt van de Load Balancer / Elastic IP) - om problemen op te lossen, probeert u misschien toegang tot alle IP's en poorten toe te staan.

(De routinggroep was mijn probleem: bij het maken van een nieuw subnet heb ik het verwaarloosd om het toe te voegen aan een routeringsgroep met een gateway.)


6
2018-05-24 23:30



Ter verduidelijking: ALLE subnetten die u kiest in de RDS-subnetgroep moeten routeringstabellen hebben waarvoor de internetgateway is opgegeven. Mijn probleem was dat twee van de subnetten die ik koos mijn "private" subnetten waren, die een NAT-gateway hadden die was opgegeven voor uitgaand verkeer in plaats van de internetgateway, en RDS koos toevallig een server in een van die subnetten. Raadpleeg dit artikel als u niet al te bekend bent met routing: medium.com/@mda590/aws-routing-101-67879d23014d - Blossoming_Flower


Vast.

Moest toegang verlenen tot het in de beveiligingsgroepen onder de DB ...


4
2018-04-25 21:04



Kun je uitleggen wat je hebt gedaan om toegang te verlenen? - David Csonka
Mijn database heeft een beveiligingsgroep met één regel. Sta toegang vanaf ANYWHERE naar poort 1433 toe. Ik kan geen verbinding maken__- - The Muffin Man


Ik had hetzelfde probleem;

  1. Beveiligingsgroepen> rds-launch-wizard (of elke naam die werd gekozen voor de db SG)
  2. selecteer het tabblad Inkomend> bewerken
  3. voeg een nieuwe rol toe
  4. MySQL
  5. Bron -> voeg de aws vm ip in (bijvoorbeeld: 12.3.14.80/32)

werkte voor mij ...


1
2018-03-26 11:22





In een poging de beveiliging volledig te openen voor testen voordat de toegang werd vergrendeld, gebruikten zowel mijn database-instantie als mijn EC2-instantie dezelfde beveiligingsgroep en zowel inkomende als uitgaande poort 3306 waren geconfigureerd om verbindingen vanuit Anywhere toe te staan. Het probleem - Ik kon vanuit mijn notebook verbinding maken met Aurora, maar vreemd genoeg niet vanuit mijn EC2-instantie, alsof het EC2-exemplaar nergens anders was. De oplossing was om nog een inkomende mysql / Aurora-regel toe te voegen en dat op te geven hetzelfde beveiligingsgroep-ID als de bron voor inkomende verbindingen. Mijn beveiligingsgroep heeft een regel die naar zichzelf verwijst en ik kan verbinding maken met mijn notebook of mijn EC2-instantie.


0
2017-07-10 05:30





mysql inkomende regel zou er ongeveer uit moeten zien te zien

image dit is het probleem met de beveiligingsgroep.


-3
2017-12-16 14:09



Is er een reden waarom je een vijf jaar oude vraag tegen het lijf loopt om het te beantwoorden met hetzelfde antwoord dat er al jaren is? geven 0.0.0.0/0 toegang tot 3306 is ook geen geweldig idee. - ceejayoz
ik heb geprobeerd de gebruiker te laten zien wat ze moeten veranderen en hoe ze kunnen veranderen, je weet dat er veel gebruikers zoals ik het probleem niet kunnen oplossen door het bovenstaande ans te lezen. het kan u niet helpen, maar er zijn gebruikers die dit zoeken. je gaf de stemming te laag omdat het je niet helpt. - Nirmal Dhara
Mijn downvote komt van het zeggen dat mensen MySQL moeten openen voor het hele internet. Het is een gevaarlijke benadering. - ceejayoz
ik heb het begrepen. ik toon gewoon de plaats waar ze de beveiligingsgroepen kunnen bewerken, ze kunnen kiezen uit dropdown wat ze willen. - Nirmal Dhara