ich versuche gerade auf einem neu hochgezogenen Server ein paar Datenbanken anzulegen, die ich wie bei uns üblich im Encoding UTF8 brauche: createdb cm_usr -E UTF8
Das hatte bisher auch noch nie Probleme gegeben. Diesmal meckert der Elefant jedoch:
createdb: database creation failed: ERROR: encoding UTF8 does not match server's locale en_US.ISO-8859-15
DETAIL: The server's LC_CTYPE setting requires encoding LATIN9.
Das vestehe ich insofern nicht, als der Befehl locale an der Kommandozeile folgendes liefert:
Sollte doch also kein Problem sein?
Ich befinde mich auf einem Ubuntu-7.10-System, Postgres läuft in Version 8.3.
Kann mir jemand irgendetwas dazu sagen? Bin für jeden Hinweis dankbar!
ich hatte oder habe dasselbe Problem. Ich bin nun hingegangen und habe alle Datenbanken gelöscht, indem ich das Verzeichnis /usr/local/pgsql/data gelöscht bzw. umbenannt habe. Dann habe ich initdb --locale=de_DE.UTF-8 durchlaufen lassen und damit die Erstkonfiguration neu angelegt. Mit createdb neue_db -E UTF8 konnte ich dieses mal eine Datenbank mit UTF-8 angelegen.
Ist es möglich, dass ALLE Datenbanken mit demselben Zeichensatz angelegt werden müssen? Denn soweit ich das sehe kann ich nun keine Datenbanken mehr in einem anderen Zeichensatz anlegen lassen, sondern immer nur mit UTF-8.
meiner Ansicht nach wäre das sehr unflexibel von Postgres, wenn alle DBs das selbe Encoding haben müssten.
Aber der Hinweis von Dir ist trotzdem interessant, ich habe wie von Dir alles gelöscht, neu initialisiert und… leider genau das gleiche.
Aus irgendeinem Grund ist der Server der Ansicht, LATIN9 ist das einzig wahre Encoding
Hallo!
Ich hab gerade das selbe Problem allerdings mit ‘latin1’ .
Meine bisherigen Nachforschungen ergaben, das dieses Problem beim Initialisieren des Datenbereichs über die LC_CTYPE-Einstellung gelöst werden kann. Das hieße, pg_dumpall, neu initiallisieren, dump wiedereinspielen. Interessanterweise tritt dieses Problem hier nur bei einem meiner zwei Server auf. Bei ersten (eingerichtet ohne Kenntnis des Problems ) tritt es nicht auf, ich kann Datenbanken mit verschiedenen Encodings anlegen, beim anderen tritt es auf, ich kann nur dbs mit UTF-8 anlegen. Wie gesagt soweit die Lösung, die ich bisher gefunden habe. Vielleicht findet sich ja eine Lösung, die mich davor bewahrt, einige GB Geodaten hinundherschubsen zu müssen, deswegen hab ich da noch keine weiteren Infos.
ISO 8859-15 ‘ist’ LATIN9. Scheint so, als ob sich initdb die erste nicht C-Locale greift, die eingetragen ist, wenn man nicht den --locale Parameter benutzt.
Grundsätzlich wird das Enkodierungsschema verwendet, das beim Initialisieren angegeben wurde (Angelegte Basis: template1). Es ist aber nicht erforderlich, eine neue Initialisierung durchzuführen. Man kann immer das template0 verwenden, um eine neue Datebank im gleichen Cluster mit anderer Enkodierung anzulegen. Um z.B. zu sehen, was an deutschen Kodierungen verfügbar ist: