Ubuntupaket für lokalen Tileserver

Danke für die reichlichen Infos, Speicherort habe ich auch wissen wollen. Zur Zeit, meine Zeit knapp. Fang mit frischen Ubuntu neu an.

Das geht jedenfalls in meiner Version von pgadmin 3 nicht. Ohne Benutzernamen ist der Ok Knopf nicht aktiv, mit benutzername beschwert er sich das kein Passwort gesendet wurde und mit meinem Passwort geht es auch nicht.

Und wenn du dich als Benutzer postgres mit dem dafür gewählten Passwort anmeldest?

Gruß,
ajoessen

Hi,

die “.pgadmin3” Konfigdatei hab’ ich jetzt nicht im Kopf :wink:

Der User “postgres” ist - glaube ich - vorbelegt und jener braucht auch kein Password.

Ciao,
Frank

Das Problem ist, dass kein Passwort für den User Postgres bekannt ist. Es wird während der Installation nicht wie bei Windows abgefragt.
Allerdings habe ich etwas gefunden:


sudo -u postgres psql postgres

Set a password for the “postgres” database role using the command:


\password postgres

Richtig beim User Postgres funktioniert es auch ohne Passwort. Sehr eigenartig.

Das wäre aber eine ziemliche Sicherheitslücke :wink:

Laut meiner Anleitung
http://wiki.openstreetmap.org/wiki/User:Ajoessen/Postgis

wird das Passwort bei der Installation angelegt.

Gruß,
ajoessen

Ja, Du verwendest auch Windows und dort ist das OS schon ein security risk :wink:

Ciao,
Farnk

Ich weiß, dass es bei Windows anders ist. Aber ein Sicherheitsrisiko kann ich auch nicht erkennen, denn wenn man einen leeren Server anlegt, dann gibt es ja dort keine sensiblen Daten. Erst wenn man dort Daten reinlädt sollte man auch an die Sicherheit denken.

Wenn man mit user postgres alles kann und darf, macht die ganze Benutzerverwaltung mit Passworten ja keinen Sinn mehr. Möglicherweise ist der superuser postgres der datenbank bei Linux automatisch mit dem superuser des Rechners identisch.

Gruß,
ajoessen

Jetzt bringen wir aber ein paar Dinge durcheinander :wink:
“postgres” ist nur ein “normaler” auf shell-Ebene:
$ grep postgres /etc/passwd
postgres:x:106:106:PostgreSQL administrator,:/var/lib/postgresql:/bin/bash

Der Administrator/Superuser unter linux heisst “root” bzw. eine Kennung mit UID=0

Postgres verwendet in Linux per default das “Ident” Verfahren zur Authentifizierung. Das heisst, wenn man sich als lokaler Unix user “xyz” bei postgres mit dem Benutzer “xyz” anmelden will, braucht man kein Passwort, denn man ist ja bereits als dieser im Betriebssystem angemeldet. Demzufolge legt Postgres per default auch keine Passwoerter fuer User (wie z.B. fuer den postgres super user) an. Man kann sich demzufolge auch nicht per passwort anmelden, da keines existiert. Allerdings funktioniert das Identverfahren glaube ich nur ueber lokale unix sockets und nicht ueber das netzwerk oder tcp sockets.

Es ist nicht immer ganz klar ob sich ein Programm mit postgres per unix oder tcp socket verbindet. Letzteres klappt dann meistens nicht, es sei denn man hat passwoerter festgelegt und das password authentifizierungs system in der config datei aktiviert. Manchmal hilft das “host” Feld blank zu lassen anstelle von localhost zu verwenden.

kann man eigentlich auch mehrere Bundesländer nacheinander einlesen?
Falls ja, sind die Daten an den Grenzen dann ok, oder irgendwie abgeschnitten?
Chris

Müsste mit dem Parameter “-a” wie “append” gehen. Oder man führt die Daten der verschiedenen Bundesländer vorher mit Osmosis oder osmconvert zu einer einzigen Datei zusammen. Wichtig ist aber, dass diese Extrakte vorher so ausgeschnitten wurden, dass Referenzen auf jeweils außerhalb liegende Knoten nicht gelöscht werden.

Hab’ jetzt mal mittelfranken und oberpfalz ausprobiert, sind zwar keine Länder sondern nur Regierungsbezirke aber benachbart.
Zuerst mittelfranken, dann oberpfalz => mittelfranken weg.
Nungut, dann halt mittelfranken hinzu mittels “-a” =>


Reading in file: mittelfranken.osm.pbf
Processing: Node(2343k 75.6k/s) Way(362k 3.51k/s) Relation(0 0.00/s)COPY_END for COPY planet_osm_ways FROM STDIN;
 failed: FEHLER:  doppelter Schlüsselwert verletzt Unique-Constraint »planet_osm_ways_pkey«
CONTEXT:  COPY planet_osm_ways, Zeile 1549: »4361184    {26262442,294294135,26262443,294294552,26582221,26582222,26582223,299352747,26582224,2658222...«

Error occurred, cleaning up

Ciao,
Frank

Tipp von Frederik:


Vermutlich kannst Du es austricksen, wenn Dir das die Muehe wert ist, indem Du aus dem .osm ein .osc machst.
Du musst das PBF erst nach XML konvertieren und dann statt
<osm>..</osm>
ein
<osmChange><modify>...</modify></osmChange>
drum setzen. 

Cool, funktionokelt! Auch optisch an den Grenzübergängen überprüft.

Leider wird es dadurch schnecken-langsam:

$ LD_LIBRARY_PATH=/usr/local/lib osm2pgsql -U postgres -s -a kleines_mittelfränkisches_dorf_nahe_oberpfalz.osm

Processing: Node(5k 0.3k/s) Way(0k 0.08k/s) Relation(68 3.40/s) parse time: 46s

Ciao,
Frank

Sorry, das mit der Änderung des Dateityps hatte ich vergessen. :frowning:

osm2pgsql kann in diesem Fall kein SQL-Insert verwenden, weil ja damit gerechnet werden muss, dass das betreffende Objekt schon existiert. SQL-Update läuft leider deutlich langsamer.
Wenns ZU langsam ist, dann kannst du noch den Trick mit dem Mergen der Dateien versuchen. Bei Extrakten von Geofabrik sollte das gehen:

./osmconvert mittelfranken.osm oberfranken.osm unterfranken.osm >franken.osm

Mmh, es ist nicht nur ein bischen langamer, es ist (bei mir) ca. 200x langsamer (75.6k/s <=> 0.3k/s)!

In meiner Naivität hab’ ich
bin/osmosis --rxc file=mittelfranken.osc --write-pbf file=mfr.pbf
probiert (um anschließend das pbf wieder einzuspielen), was aber nicht funzt:
SCHWERWIEGEND: Execution aborted.
org.openstreetmap.osmosis.core.OsmosisRuntimeException: Task 2-write-pbf does not support data provided by default pipe stored at level 1 in the default pipe stack.

Wenn ich nun über Weg 2 gehe (mergen der (osm-)Dateien, Einspielen des merger in die Datenbank, Aufbewahren
der osm-Dateien, später: droppen der Datenbank, mergen der osm-Datei mit einem Update, Einspielen)
erschließt sich mir der Sinn einer Datenbank nicht mehr, da kann man ja gleich die (osm-)Dateien benutzen :wink:

Ciao,
Frank

Nein kannst du aus performance gründen beim rendern größerer Gebiete nicht. Denn dafür musst du die Daten komplett vorhalten oder jedesmal wieder neu einlesen. Gerade für solche Speicherplatzknauserer wie du ist das die einzige Möglichkeit auch mal ein ganze Bundesland zu rendern. Jedenfalls wenn an der Festplatte nicht auch noch gespart wurde.

Mmh, ich spreche jetzt vom nicht-ambitionierten Tileserverbetreiber, welcher mit
viel Mueh und Hingabe Dtl. sich eingerichtet hat und nach Wochen (Monaten) sein
geliebtes Mittelfranken updaten moechte.
Ihm wuerde dann gesagt: Watten? Upgraden? Viel zu lange. Dtl. neu einspielen!

:frowning: