Då var det dags igen! Jag byter operativsystem, testar och trixar, väldigt mycket. Och ibland går saker och ting ”sönder”. Ni som följer bloggen känner till att jag strulat med Ubuntu Gnome och senare versioner, men nu gått tillbaka till 16.04. Det har även inneburit att min PostGIS databas måste sättas upp igen.
För ett år sedan (länk till inlägg) så gjorde jag samma sak, men då fokuserade jag inlägget på att läsa in mycket data på en gång, och inte så mycket på installationen. Det tänkte jag ändra på den här gången.
Jag installerar på Ubuntu Gnome 16.04, men då Postgres/PostGIS finns bakom skrivbordet så kan instruktionen användas för alla Ubuntu 16.04 baserade distributioner, även Server.
sudo apt install postgis
Ovanstående kommando hämtar och installerar Postgres 9.5 och PostGis 2.3 när jag skriver detta. Jag har sedan tidigare lagt till repository för UbuntuGIS, och det är härifrån installationen kommer.
Ändra administratörslösenorden för ”postgres”:
sudo passwd postgres
Ovanstående ber dig ange ett nytt lösenord för systemanvändaren postgres. Och nedanstående byter lösenord för databasanvändaren postgres. Du kan använda samma lösenord om du vill.
sudo -s -u postgres psql
Dags att redigera inställningar så att det går att komma åt databasen från olika klienter.
I filen ”/etc/postgresql/9.5/main/postgresql.conf” så letar man reda på raden med ”#listen_addresses” och tar bort den inledande brädgården. Sedan kan man antingen ersätta ”localhost” med den adress man vill lyssna på, eller lägga till den med ett kommatecken.
Det är serverns IP adress som skall anges och om du inte vet vad den är så skriver du in kommandot ifconfig i ett terminalfönster.
I filen ”pg_hba.conf” på samma sökväg så lägger man till den adressrymd som skall tillåtas ansluta till servern. Om man bara kommer att ansluta lokalt så behöver man inte redigera här. Här har jag lagt till rymden 192.168.0.1/24.
Adressrymden anges med ”/24” och betyder att alla adresser som börjar med ”192.168.0.” är tillåtna.
För att effektuera ändringarna så skall servern startas om:
sudo service postgresql restart
Sedan är det dags för PostGIS konfigurationen.
Först skapar jag en ”template” databas. Denna kan användas som förlaga om man sedan vill fortsätta i ett gränssnitt för att skapa nya PostGIS databaser.
sudo -u postgres createdb postgis_mall sudo -u postgres psql -d postgis_mall -f /usr/share/postgresql/9.5/contrib/postgis-2.3/postgis.sql sudo -u postgres psql -d postgis_mall -f /usr/share/postgresql/9.5/contrib/postgis-2.3/spatial_ref_sys.sql sudo -u postgres psql -d postgis_mall -f /usr/share/postgresql/9.5/contrib/postgis-2.3/postgis_comments.sql sudo -u postgres psql -d postgis_mall -f /usr/share/postgresql/9.5/contrib/postgis-2.3/rtpostgis.sql sudo -u postgres psql -d postgis_mall -f /usr/share/postgresql/9.5/contrib/postgis-2.3/raster_comments.sql sudo -u postgres psql -d postgis_mall -f /usr/share/postgresql/9.5/contrib/postgis-2.3/topology.sql sudo -u postgres psql -d postgis_mall -f /usr/share/postgresql/9.5/contrib/postgis-2.3/topology_comments.sql
Det går att använda databasen man skapat som en PostGIS databas, men jag vill gärna ha en ”ren” mall att utgå ifrån i PgAdmin för att kunna skapa nya databaser när jag behöver det. Vill man skapa en produktionsdatabas direkt så kan man byta ut ”postgis_mall” mot exempelvis ”geodata” i kommandona ovan.
PgAdminIII
I PgAdmin så kopplar man upp sig mot servern med ”Add connection…” vilket är knappen med en kontakt. I formuläret så får man bland annat fylla i adressen till servern och mata in lösenordet för postgres användaren. Detta ger en anslutning till servern där man kan se den nyss skapade malldatabasen.
Nu kan det vara läge att skapa lite användare först, så att man inte behöver använda administratörskontot för databasen när man skall ansluta. Det går att skapa grupper och inloggningsroller (vilket är samma sak förutom att grupper inte kan logga in). Skapa de användare du vill ha och placera dessa i grupper, som sedan ges rättigheter.
Jag skapar en användare (klakar) och en grupp (dbUser).
Jag ser till att användaren är medlem i ”dbUser” och när jag skapar en ny databas vid namn ”geodata” genom att högerklicka på ”Databases”, så sätter jag ”dbUsers” som ägare till databasen.
I fliken ”Definition” så anger jag ”postgis_mall” som Template. Här kan du även välja en annan teckenkodningsstandard om du vill det (Lantmäteriet använder i huvudsak Latin1 i sina data).
Under ”Privileges” så lägger jag till gruppen dbUser med utökade rättigheter. Om man inte vill att vem som helst (inom tillåten adressrymd) skall kunna komma åt databasen så kan man ta bort användaren public.
När jag sedan klickar på ”OK” så skapas databasen och det skall gå att ansluta från QGIS (eller andra program) med användaren klakar.
QGIS
Det enklaste sättet att ansluta till PostGIS databasen är via panelen ”Datakällor”. Högerklicka bara på ”PostGIS” och välj ”Ny Anslutning”. I formuläret fyller man sedan i namn, adress och databasnamn. Sedan kan man välja hur man skall autentisiera sig. Antingen skriver man in användarnamn och lösenord direkt, vilket sparar uppgifterna i klartext i de projektfiler som använder data från databasen (om man väljer att ”Spara” uppgifterna i dialogen.
Det andra alternativet är att använda den inbyggda hanteraren för verifieringar som i stället lagrar en id-kod kopplat till en krypterad databas. Detta är säkrare, men kan ställa till det för andra användare av samma projekt.
Nu går det att använda databashanteraren för att skapa nya ”Scheman” och fylla dessa med tabeller med data.
Och där är vi tillbaka var jag var för ett år sedan, med jobbet att fylla på med data från många källor (länk tidigare i inlägget).