Fehler bei Erstellung der PostgreSQL DB - Druckversion +- Forum Notenmanager (https://forum.notenmanager.net) +-- Forum: Schulversion (https://forum.notenmanager.net/forumdisplay.php?fid=22) +--- Forum: Installation SV (https://forum.notenmanager.net/forumdisplay.php?fid=2) +--- Thema: Fehler bei Erstellung der PostgreSQL DB (/showthread.php?tid=5979) |
Fehler bei Erstellung der PostgreSQL DB - tobiatnet - 07.10.2015 Hallo, wenn ich mit dem NMPGSetup Tool die PG Datenbank erzeugen möchte, kommt folgender Fehler im Log: [07.10.2015 17:17:45 | GDATASRV]#--> Fehler: Datenbank konnte nicht erstellt werden#ERROR: 22023: new collation (de_DE.UTF- is incompatible with the collation of the template database (en_US.UTF-#CreateDB#MainWindow#ErrorTypeInfo Der DB-Benutzer wird fehlerfrei erstellt. Der PostgreSQL Server ist auf Linux und in Version 9.1.18 Ich habe aber schon mehrere der exakt selben Versionen fehlerfrei installieren können... Was kann das sein? vg Tobias RE: Fehler bei Erstellung der PostgreSQL DB - tobiatnet - 07.10.2015 Habe den Fehler selbst gefunden, musste eine neue template DB erstellen mit Codierung de_DE.UTF-8 RE: Fehler bei Erstellung der PostgreSQL DB - NM-Himself - 07.10.2015 Hallo Tobias, jetzt wollte ich gerade einen für Laien verständlichen Workaround schicken, ist ja nun nicht mehr nötig. Und Laie bist du auf diesem Gebiet ganz offensichtlich auch nicht. Gruß Stephan RE: Fehler bei Erstellung der PostgreSQL DB - tobiatnet - 08.10.2015 Sollte jemand anders auch das Problem haben, hier eine kurze Step by Step Anleitung. Ursache ist, dass PostgreSQL auf Englisch installiert wurde und die template Datenbank mit Zeichencode us_US.UTF-8 erstellt wurde. Dies lässt sich nicht ohne Weiteres umstellen. Abhilfe schafft, eine neue template Datenbank anzulegen, die dann richtig mit de_DE.UTF-8 codiert ist. Folgendes funktioniert auf einem SuSE Linux System (SLES 11), sollte aber auch bei anderen Distributionen klappen: ------------------------------------------------------ v01:/ # su postgres postgres@v01:/> psql psql (9.1.18) Type "help" for help. postgres=# update pg_database set datallowconn = TRUE where datname = 'template0'; UPDATE 1 postgres=# \c template0 You are now connected to database "template0". template0=# update pg_database set datistemplate = FALSE where datname = 'template1'; UPDATE 1 template0=# drop database template1; DROP DATABASE template0=# create database template1 with template = template0 encoding = 'UTF-8' LC_CTYPE = 'de_DE.UTF-8' LC_COLLATE = 'de_DE.UTF-8'; CREATE DATABASE template0=# update pg_database set datistemplate = TRUE where datname = 'template1'; UPDATE 1 template0=# \c template1 You are now connected to database "template1". template1=# update pg_database set datallowconn = FALSE where datname = 'template0'; UPDATE 1 template1=# \q postgres@v01:/> ------------------------------------------------------ Danach ist die neue Datenbank "template1" als Template-Datenbank gekennzeichnet und die Umstellung des Notenmanagers sollte kein Problem mehr sein. vg Tobias RE: Fehler bei Erstellung der PostgreSQL DB - NM-Himself - 08.10.2015 Dann häng ich auch noch etwas dran. Wenn Postgres eine neue Datenbank erstellt wird standardmäßig template1 als Vorlage herangezogen. Wenn eine "fremdsprachige" Postgres-Installation durchgeführt wurde ist in template1 dann auch ein - für den Notenmanager - unbrauchbare Codierung eingestellt, die aber nicht mehr geändert werden kann. Variante 1: template1 neu erstelle wie von Tobias oben erklärt. Unter Umständen ist der Weg aber nicht akzeptabel, weil die Codierung für andere Programme eben genau so gebraucht wird (und neue Datenbanken erstellt werden müssen oder ...). Dann geht Variante 2:
Stephan |