Konfigurowanie bazy danych PostGIS i otwieranie jej w QGIS w systemie Windows?


15

Próbowałem postępować zgodnie z instrukcjami dotyczącymi konfigurowania bazy danych PostGIS, do której mają dostęp użytkownicy z QGIS, ale w tej chwili nie rozumiem wystarczająco dużo, aby przejść dalej?

Moja sytuacja; Jestem stażystą odpowiedzialnym za tworzenie bazy danych PostGIS do digitalizacji zielonych obiektów (takich jak drzewa) i uruchamianie zapytań - takich jak łączenie listy ulic z plikami obrazów do tabeli atrybutów.

Mam „szkielety plików kształtów” (obecnie puste bez żadnych obiektów, tylko ramka atrybutu ”, w którym zostaną wklejone / utworzone obecne i przyszłe obiekty georeferencyjne (inny plik kształtu dla każdego typu). Mam nadzieję, że mogę po prostu zaimportować te szkieletowe pliki kształtu baza danych?

Sytuacja;

Pracujemy w oddzielnym budynku z własnym połączeniem LAN i internetem z serwerem kopii zapasowych dla każdego pliku. Mamy więc lokalny dostęp do plików i pliki, które udostępniamy przez połączenie internetowe

Konfiguracja bazy danych została wykonana przez administratora za pomocą zdalnego dostępu, przy użyciu najnowszych plików wykonywalnych .exe PostGIS i PostgreSQL (postgresql-9.6.2-3-windows-x64 i postgis-bundle-pg96x64-setup-2.3.2 -1) dla mojego 64-bitowego komputera. Administrator dostarczył mi plik tekstowy z danymi logowania. Podręczniki szkoleniowe tutaj są dość mylące, ponieważ dotyczą Ubuntu.

Utknąłem, ponieważ nie wiem, gdzie użyć zapisanych przeze mnie danych logowania? Zakładam, że muszę użyć pgAdmin?


W ten sposób instaluję PostGIS w systemie Windows - w prostej instalacji get.enterlictb.com/docs/… wtedy QGIS łatwo połączy się z ustawioną nazwą użytkownika i hasłem.
— Mapperz

1
Zdecydowanie radziłbym zainstalować pgAdmin 3 do pracy z bazą danych. Jest teraz pgAdmin4, możesz też spróbować zainstalować go w tym samym czasie, zobacz, który wolisz.
— Martin Hügi

Poczekaj, więc gdzie w takim razie przejdź do QGIS i jakie pliki powinienem zainstalować w kreatorze stosów? Edytuj NVM: znalazłem to teraz Muszę znaleźć wpisy lokalnego hosta i usługi, które muszę wprowadzić.
— ThunderSpark

Postgis zainstaluje wymagany „serwer” lokalnie, w ten sposób działa baza danych - następnie używasz QGIS do połączenia „na żywo” za pośrednictwem serwera (localhost).
— Mapperz

Odpowiedzi:


24

Wygląda na to, że administrator pomyślnie zainstalował bazę danych i podał ci potrzebne informacje. Być może skonfigurowali także PostGIS podczas instalacji, ale jeśli nie, możesz to sprawdzić podczas wykonywania tych kroków.

Najpierw poproś administratora o zainstalowanie pgAdmin, co pozwoli ci uzyskać dostęp do bazy danych PostgreSQL za pomocą interfejsu graficznego.

https://www.pgadmin.org/download/windows.php

Otwórz pgAdmin

Jeśli Twój PostgreSQL został zainstalowany;

  • na twoim komputerze pojawi się jako localhost, powinieneś być w stanie kliknąć dwukrotnie „PostgreSQL (wersja nr.) (localhost: 5432)”, aby się z nim połączyć.

wprowadź opis zdjęcia tutaj

  • Jeśli został zainstalowany w sieci, będziesz potrzebować administratora, aby poinformować Cię o adresie hosta (jeśli go jeszcze nie masz), a następnie przejdź do Plik> Dodaj serwer i wypełnij pola;

wprowadź opis zdjęcia tutaj

Po połączeniu przejdź do Edit > New Object > New Database

Daj temu imię. Pojawi się na liście serwerów.

Kliknij dwukrotnie, aby się z nim połączyć. Sprawdź, Extensionsczy zawiera listę postgis.

Jeśli nie;

Otwórz okno SQL, klikając ikonę SQL

wprowadź opis zdjęcia tutaj

i wpisz

CREATE EXTENSION PostGIS

Naciśnij „Wykonaj zapytanie” - ta ikona wprowadź opis zdjęcia tutaj

Kliknij prawym przyciskiem myszy bazę danych na liście i odłącz, a następnie podłącz ponownie. Rozszerzenia powinny być teraz postgiswymienione.

Możesz skonfigurować nową rolę grupy i rolę logowania w tym momencie, brzmi to tak, jakbyś powinien uwzględniać potrzeby bezpieczeństwa i użytkowników w całej sieci.

Lub jeśli chcesz go tylko przetestować, możesz kontynuować z domyślną rolą postgres.

Różne grupy mogą być skonfigurowane tak, aby mieć różne uprawnienia, np. Administrator i użytkownik. Loginy użytkownika można następnie skonfigurować i przypisać do dowolnej grupy, która odpowiada poziomowi uprawnień, które chcesz dać użytkownikowi, lub możesz przyznać dostęp do wszystkich tabel administratorowi, a tylko niektórym użytkownikom itp. Być może nie potrzebujesz grupy administracyjnej.

Otwórz okno SQL i wykonaj te zapytania;

CREATE ROLE user_group_name NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
CREATE ROLE admin_group_name NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;

GRANT user_group_name TO admin_group_name

GRANT ALL ON DATABASE database_name TO admin_group_name;

Ustaw login administratora (zalogowany jako postgres / superuser)

CREATE ROLE admin_name LOGIN PASSWORD 'their_password' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT admin_group_name TO admin_name;

Ustaw login użytkownika (zalogowany jako postgres / superuser)

CREATE ROLE user_name LOGIN PASSWORD 'their_password' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT users_group_name TO user_name;

Otwórz QGIS. Rozpocznij nowy projekt.

Kliknij ikonę „Dodaj warstwę PostGIS” na pasku narzędzi po lewej stronie.

wprowadź opis zdjęcia tutaj

Kliknij „Nowe” połączenie i wprowadź szczegóły połączenia jak wyżej (jeśli baza danych jest lokalna, to host jest po prostu localhost).

W tym momencie możesz przetestować połączenie. Jeśli zaznaczysz pola „Zapisz” przy polu nazwy użytkownika i hasła, będą one przechowywać twoje dane uwierzytelniające w twoim profilu, więc nie musisz za każdym razem wprowadzać. W zależności od potrzeb w zakresie bezpieczeństwa.

Naciśnij Ok i zamknij okno „Dodaj tabelę PostGIS”

Następnie przejdź do Database > DB Manager > DB Manager (Najnowsze wersje QGIS mają zainstalowany DB Manager w standardzie, wcześniejsze wersje będą wymagały instalacji wtyczki DB Manager)

Wybierz PostGIS. Zostanie wyświetlony domyślny schemat publiczny. Wygląda na to, że powinieneś stworzyć nowy schemat zamiast używać publicznego.

Schemat> Utwórz schemat - Nadaj mu nazwę ( no_spaces_or_use_underscores)

Po utworzeniu możesz to sprawdzić, wracając do pgAdmin, rozłącz, ponownie połącz. Nowy schemat powinien już tam być.

Wróć do QGIS DB Manager, aby przesłać plik kształtu do tabeli w bazie danych.

Kliknij strzałkę w dół „Importuj warstwę / plik”, przejdź do pliku kształtu, który chcesz zaimportować. Kliknij ikonę `` ... '', aby otworzyć przeglądanie.

Nadaj tabeli nazwę ( again_no_spaces_or_use_underscores)

Wybierz Primary key

Wybierz Geometry Column

Wybierz SRIDi wprowadź kod CRS

Na razie zostaw wszystko inne i OK.

Jeśli jest to duży zestaw danych, może to chwilę potrwać, szczególnie przez połączenie sieciowe / internetowe

Ponownie możesz wrócić do pgAdmin, tym razem naciśnij przycisk odśwież, a nowa tabela pojawi się w Tables.

Jeśli skonfigurowałeś role grupy i użytkowników, musisz na przykład przyznać dostęp do schematu;

GRANT ALL ON SCHEMA schema_name TO admin_group_name;
GRANT USAGE ON SCHEMA schema_name TO user_group_name;

Wróć do QGIS i „Dodaj warstwę PostGIS”. Tym razem wybierz Połącz. Otwórz schemat i podświetl tabelę, a następnie kliknij „Dodaj”, a otworzy się w przestrzeni projektu.


Wygląda na to, że zainstalowali PQadmin 4. Podaję hasło, gdy program o to poprosi, ale pojawia się komunikat „Nie mogłem przetłumaczyć nazwy hosta„ postgres // * nazwa_społeczności123 ”na adres: nieznany błąd serwera”. Więc co muszę tutaj zrobić, pamiętaj, że pracuję z PQadmin4 i jest tylko jeden serwer PostGre SQL 9.6. Zakładam więc, że zainstalowali serwer PostGre QSL, ale mogli zrobić coś złego z konfiguracją adresu. Czy muszę ich tutaj poinformować, czy robię coś złego? * = czujnik.
— ThunderSpark

1
Spróbuj „localhost” jako nazwy hosta, aby wykluczyć to wejście lub wyjście. Jeśli nie, poproś administratora o podanie ścieżki do postgresu w sieci, powinien on być w stanie ci to dać. Prawdopodobnie jest to po prostu składnia lub brak czegoś w adresie.
— Martin Hügi

Dziękuję, że działało, okazało się, że popełnili błąd, zmieniając nazwę użytkownika na superużytkownika, Postgresa i tak dalej. Postępuję zgodnie z resztą instrukcji i sprawdzam, czy to działa. Dziękuję martin.
— ThunderSpark

Ok, to działa Martin, czy możesz dodać resztę, jak zrobić bazę danych dla grupy, która tu pracuje?
— ThunderSpark

Szybko dodałem kilka skryptów, musiałem czekać na przerwę na lunch, więc trochę się spieszyłem. Powinny działać.
— Martin Hügi

2

Wygląda na to, że Twój projekt będzie działał wystarczająco dobrze na przenośnej instalacji postgres / postgis. Zrobiłem to dla moich studentów jakiś czas temu, aby mogli skopiować folder postgresl na pamięć USB i używać go na każdym komputerze z systemem Windows:

  1. Pobierz postgresql jako plik zip
  2. Rozpakuj to
  3. Pobierz postgis (postgis-bundle-pg96-2.3.1x32.zip lub x64), zgodnie z systemem
  4. Rozpakuj go i skopiuj do folderu postgresql
  5. Użyj tego wyjaśnienia, aby „zainstalować” Postgres jako wersję przenośną: http://www.postgresonline.com/journal/archives/172-Starting-PostgreSQL-in-windows-without-install.html
  6. Opcjonalnie zmień plik pg_hba.conf i dodaj / przesłoń „hostuj wszystkie zaufanie 127.0.0.1/32” - pozwala to na dostęp z komputera do bazy danych bez sprawdzania hasła, co w tym przypadku jest w porządku, ale w środowiskach produkcyjnych nie da się tego zrobić
  7. Połącz się z bazą danych za pomocą pgadmin3
  8. Utwórz nową bazę danych i uruchom „CREATE EXTENSION postgis;”

Teraz powinieneś być w stanie pracować z postgesql / postgis i uzyskać dostęp do bazy danych na komputerze. Należy pamiętać, że jest to szybkie i brudne rozwiązanie, które działa w celach edukacyjnych, ale nie w środowisku produkcyjnym / sieciowym.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.