PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Konfigurowanie Django i PostgreSQL na dwóch różnych instancjach EC2

WSPARCIE AMAZON

Więc skończyło się na rozmowie z chłopakami z Amazona po odpowiedzi Davida Wolevera. Na wypadek, gdyby ktoś z Was ponownie natknął się na ten post. Korzystanie z samego wewnętrznego adresu IP serwera nie wystarczy, jednak jest to dobry początek. Jeśli używasz Ubuntu dla swojej instancji Postgresql (najlepiej Natty Narwhal), upewnij się, że edytujesz pliki pg_hba.conf i postgresql.conf.

Zazwyczaj te dwa pliki można znaleźć pod adresem:/etc/postgresql/8.4/main/(pg_hba.conf lub postgresql.conf)

Pamiętaj, że w naszym stosie używamy Postgresql 8.4, który podczas naszych testów okazał się najbardziej spójną i solidną wersją Postgresql do uruchomienia na Natty Narwhal.

W przypadku różnych wersji Postgresql (9.1, 9.0 itp.) katalog, w którym można znaleźć te dwa pliki, nie jest taki sam, jak wymieniony powyżej. Upewnij się, że znasz właściwy katalog do tych plików.

KROK 1

Przejdź do konsoli zarządzania Amazon i upewnij się, że obie instancje znajdują się w tej samej grupie bezpieczeństwa. Postgresql i Django domyślnie używają 5432 i 8000, więc upewnij się, że te dwa porty są otwarte!

KROK 2

(Zrób to na terminalu w instancji postgresql)

sudo vim postgresql.conf

Naciśnij „i” na klawiaturze, aby rozpocząć wprowadzanie zmian. Użyj klawisza strzałki w dół, aż natrafisz na

LISTEN_ADDRESSES:„host lokalny”

Pozbądź się tagu hash z przodu i zamiast „localhost” dodaj prywatny adres IP instancji postgresql (możesz znaleźć prywatny adres IP w konsoli zarządzania EC2) i musisz również dodać 127.0.0.1.

PRZYKŁAD:

LISTEN_ADDRESSES:'prywatny adres IP, 127.0.0.1'

Upewnij się, że oddzielasz prywatny adres IP i adres lokalnego hosta przecinkiem i zostawiasz to wszystko w jednym cudzysłowie.

Po wprowadzeniu zmian naciśnij ESC i naciśnij ZZ (dwukrotnie wielkimi literami, aby zapisać zmiany)

KROK 3

sudo vim pg_hba.conf

Użyj klawisza strzałki w dół, aż natrafisz na coś, co wygląda tak:

           Database administrative login by UNIX sockets
  local   all         postgres                          ident

  # TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

  # "local" is for Unix domain socket connections only
  local   all         all                               md5
  # IPv4 local connections:
  host    all         all         127.0.0.1/32          trust
  # IPv6 local connections:
  host    all         all         ::1/128               md5
  local   django_db   django_login                      md5
  host    replication postgres    127.0.0.1/32          md5
  host    replication postgres    ::1/128               md5

Jeszcze raz naciśnij „i” na klawiaturze i wprowadź zmiany dokładnie tak, jak powyżej.

Zauważysz, że pod IPv6 mam django_db i django_login, zmień je na nazwę bazy danych postgresql i login użytkownika, którego używasz odpowiednio w bazie danych postgresql.

Po wprowadzeniu zmian naciśnij ESC i naciśnij ZZ (dwukrotnie wielkimi literami, aby zapisać zmiany)

KROK 4 (Prawie gotowe, Hi5!)

Zrestartuj serwer postgresql za pomocą tego polecenia w terminalu:

Ponowne uruchomienie sudo /etc/init.d/postgresql

Gratulacje! Serwer jest uruchomiony i działa, ale jest jeszcze jeden krok.

KROK 5

Odpal instancję Django EC2, przejdź do pliku settings.py i poszukaj tego:

 DATABASES = {
 'default': {
 'ENGINE': 'django.db.backends.postgresql_psycopg2', 
 'NAME': 'django_db', 
 'USER': 'django_login',
 'PASSWORD': 'password', 
 'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
 'PORT': '', # Set to empty string for default. Not used with sqlite3.
 }

W sekcji „HOST”:„ ” zmień go na „HOST”:„niezależnie od tego, jaki jest prywatny adres IP instancji Postgresql”

Zapisz zmiany. Otwórz terminal i znajdź katalog, w którym znajduje się plik manage.py. Gdy znajdziesz się w tym katalogu, uruchom następujące polecenie:./manage.py syncdb

Stworzą one wszystkie niezbędne tabele dla modeli utworzonych w Django. Gratulacje, pomyślnie utworzyłeś połączenie między instancją bazy danych a instancją Django.

Jeśli masz jakieś pytania, chętnie pomogę! Zostaw komentarz poniżej, a odezwę się do Ciebie JAK NAJSZYBCIEJ! :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. NOT IN w postgresql nie działa

  2. Wyświetlanie i przełączanie baz danych w PostgreSQL

  3. LOWER() – Konwertuj na małe litery w PostgreSQL

  4. Aktualny stan zarządzania kopiami zapasowymi Open Source dla PostgreSQL

  5. Zainstaluj Postgres.app na komputerze Mac