sql >> Database teknologi >  >> RDS >> PostgreSQL

django kan ikke oprette forbindelse til RDS postgresql

Rediger:

Har lige kørt det igennem igen, og få en nemmere måde.

Når du forsøger at bruge en eksisterende RDS-database med Django på EC2 eller EB, bliver du nødt til at justere sikkerhedsgrupperne og derefter hente de korrekte parametre og indstille dem som miljøvariabler (RDS_*)

1) Opret RDS, og match disse:

Environment variables - RDS console label

RDS_HOSTNAME - Endpoint (this is the hostname)
RDS_PORT - Port
RDS_DB_NAME –  DB Name
RDS_USERNAME –  Username
RDS_PASSWORD – Password you set for your DB

2) Indstil dem ved at bruge for eksempel eb setenv

3) Gå til din EC2/EB instans og få sikkerhedsgruppen til at f.eks. awseb-z-afsafdsaf-stack-AWSEBSecurityGroup-asfdsadfasdf

4) Gå til panelet for din RDS-instans, rul ned til Sikkerhedsgrupper og noter hvilken sikkerhedsgruppe den har. for eksempel. rds-launch-wizard-1 (ab-sdjfalkajsdf39)

5) Vælg RDS-sikkerhedsgruppen, og tilføj en indgående regel med typen:PostgreSQL (eller hvilken som helst db du bruger), og brug den EC2- eller EB-instans, du fik i trin 2 som kilde (awseb-z-afsafdsaf-stack-AWSEBSecurityGroup-asfdsadfasdf ). Protokol og portområde bør automatisk udfyldes.

6) Gem det

Det var det.

Original:

Til enhver, der falder over dette spørgsmål:

Når du forsøger at bruge en eksisterende RDS-database med Django på EC2 eller EB, bliver du nødt til at justere sikkerhedsgrupperne og derefter hente de korrekte parametre og indstille dem som miljøvariabler (RDS_*)

1) Opret RDS, og match disse:

Environment variables - RDS console label

RDS_HOSTNAME - Endpoint (this is the hostname)
RDS_PORT - Port
RDS_DB_NAME –  DB Name
RDS_USERNAME –  Username
RDS_PASSWORD – Password you set for your DB

2) Indstil dem ved at bruge for eksempel eb setenv

3) Gå til din EC2/EB instans og få sikkerhedsgruppen til at f.eks. awseb-z-afsafdsaf-stack-AWSEBSecurityGroup-asfdsadfasdf og for belastningsbalanceren:awseb-e-adsfadsf-stack-AWSEBLoadBalancerSecurityGroup-asdfadsf

4) Gå til panelet for din RDS-instans, rul ned til Sikkerhedsgrupper og noter hvilken sikkerhedsgruppe den har. for eksempel. rds-launch-wizard-1 (ab-sdjfalkajsdf39)

5) Klik på modificer for RDS-forekomsten, og tilføj sikkerhedsgruppen for belastningsbalancer, som du fandt ovenfor, i indstillingen Sikkerhedsgrupper i midten. Den burde have forslag.

6) Gå til EC2 Dashboard og vælg sikkerhedsgrupper fra menuen til venstre.

7) Vælg load balancer-sikkerhedsgruppen, og tilføj en udgående regel. Type skal være din RDS-type (PostgreSQL), og destinationen skal være brugerdefineret og RDS-instansens sikkerhedsgruppe. Gem.

8) Gør det samme for indgående, brug den samme RDS-type og destination

9) Vælg RDS-sikkerhedsgruppen, og tilføj en indgående regel, der ligner 8, men ved hjælp af EC2- eller EB-forekomsten, som du fik i trin 2.

10) Gem, du er færdig. De burde kunne arbejde sammen nu.

Jeg er ikke 100 % sikker på, at alle disse trin er nødvendige, en eller to er det måske ikke, men dette fik jobbet gjort for mig.




  1. FROM-sætning, der er nødvendig i hver SELECT-sætning

  2. AWS-lim - Afkort destinationspostgres-tabel før indsættelse

  3. Valg af et undersæt af rækker fra en PHP-tabel

  4. Henter rækker i en MySQL-databasetabel ved hjælp af MySQL C API og C++