Postgres unter Linux (hier: Ubuntu) installieren: * alles was hier mit sudo gemacht wird, kann man auch als root machen. * der eigene Benutzer muss in der Admin-Gruppe eingetragen sein, um sudo machen zu duerfen. * das Prompt "may@unix>" steht fuer das was man als normaler Benutzer in der Shell ausfuehrt. * ueberall, wo unten "may" steht, sollte man seinen eigenen Unix-Benutzernamen einsetzen. may@unix> sudo apt-get install postgresql-12 (Stand Juni 2022; bzw. die jeweils aktuelle Version) Wie man es dann einrichtet, ist ausfuehrlich unter beschrieben. Hier wird jetzt nur eine Kurzform beschrieben, die genuegt, um mit Mondial zu spielen: -- Postgres legt einen UNIX-Benutzer "postgres" an. -- diesen braucht man eigentlich nicht direkt. may@unix> sudo -u postgres createdb may -> passwort wird abgefragt, eigenes(!) Passwort eingeben => erzeugt eine Datenbank "may" -- Warnung "could not change directory to ...: Permission denied" ignorieren -- diese tritt immer auf, wenn man mit sudo einen Benutzerwechsel (hier: als postgres ausfuehren) -- macht, und dieser Benutzer aber das aktuelle Directory nicht lesen duerfte. may@unix> sudo -u postgres createuser -l may -- erzeugt "may" als Datenbankbenutzer, der normalerweise die eben erzeugte DB "may" benutzen wird. -- -l erlaubt login auf die DB. Weitere Parameter siehe Doku (braucht man hier erstmal nicht) may@unix> psql -- ruft postgres auf. Wenn man es so wie oben einrichtet, braucht man dazu kein separates Passwort. -- Es erscheint die Meldung "psql (9.3.10) ..." und das postgres-prompt "may=>" may=> -- mit \quit, \q oder Ctrl-d (bzw. Strg-d) kommt man wieder raus ins Unix. may@unix> ... von der Mondial-Homepage die Dateien mondial-schema.psql mondial-inputs.psql mondial-drop-tables.psql nach ~/Mondial (oder sonstwo hin) downloaden und in das Directory wechseln, um die psql-Skripte auszufuehren: may@unix:~/Mondial> psql < mondial-schema.psql -- und sich an einer kurzen Fehlermeldung wegen dem Datumsformat nicht stoeren ... may@unix:~/Mondial> psql < mondial-inputs.psql -- dauert eine Weile ... viele INSERT 0 1 - "Erfolgsmeldungen" ... Transaction-Warnungen ignorieren. -- wenn man die DB mal loeschen bzw neu erstellen will, auf dieselbe Weise erst mondial-drop-tables.psql ausfuehren -- und beim re-generieren die Warnung wegen des dann bereits existierenden Datentyps geocoords ignorieren. may@unix:~/Mondial> psql -- und dann kann man wieder ins psql gehen und herumspielen: may=> select * from country; -- Strichpunkt nicht vergessen ... und es funktioniert. may=> \d -- listet alle existierenden Tabellennamen (und ggf noch ein paar andere Dinge) may=> \d country -- listet alle Spalten der Tabelle "Country" (in SQL sind alle Befehle case-insensitive) Der Postgres-Datenbankserver wird beim Hochfahren des Rechners automatisch mit hochgefahren, und die Datenbank mit ihren Inhalten ist in dem Zustand verfuegbar, in dem sie letztes Mal hinterlassen wurde. Man kann den Server bei Bedarf auch manuell stoppen/starten (weil man vielleicht durch Vergessen einer Join-Bedingung ein riesiges kartesisches Produkt berechnet): may@unix> sudo /etc/init.d/postgresql stop may@unix> sudo /etc/init.d/postgresql start