Codierung von UTF8 entspricht nicht dem Gebietsschema en_US; Die gewählte LC_CTYPE-Einstellung erfordert das Kodieren von LATIN1
Beim Versuch zu installieren opennms :
/usr/share/opennms/bin/install -l /usr/local/lib -dis
Bekomme ich die Fehlermeldung:
FEHLER: encoding UTF8 stimmt nicht überein Gebietsschema en_US Detail: Die gewählte Einstellung LC_CTYPE erfordert die Codierung LATIN1.
und ich bin mir nicht sicher, wie Sie Vorgehen, habe ich versucht die Erstellung der DB verschiedene Möglichkeiten (siehe unten).
Vollständiges Protokoll:
==============================================================================
OpenNMS Installer
==============================================================================
Configures PostgreSQL tables, users, and other miscellaneous settings.
- searching for jicmp:
- trying to load /usr/local/lib/libjicmp.so: NO
- trying to load /usr/lib/jni/libjicmp.so: OK
- searching for jicmp6:
- trying to load /usr/local/lib/libjicmp6.so: NO
- trying to load /usr/lib/jni/libjicmp6.so: OK
- searching for jrrd:
- trying to load /usr/local/lib/libjrrd.so: NO
- trying to load /usr/lib/jni/libjrrd.so: NO
- trying to load /usr/lib/jni/libjrrd.so: NO
- trying to load /usr/lib/jvm/jdk1.6.0_34/jre/lib/amd64/server/libjrrd.so: NO
- trying to load /usr/lib/jvm/jdk1.6.0_34/jre/lib/amd64/libjrrd.so: NO
- trying to load /usr/lib/jvm/jdk1.6.0_34/jre/../lib/amd64/libjrrd.so: NO
- trying to load /libjrrd.so: NO
- trying to load /usr/share/opennms/lib/libjrrd.so: NO
- trying to load /usr/share/opennms/lib/linux64/libjrrd.so: NO
- trying to load /usr/java/packages/lib/amd64/libjrrd.so: NO
- trying to load /usr/lib64/libjrrd.so: NO
- trying to load /lib64/libjrrd.so: NO
- trying to load /lib/libjrrd.so: NO
- trying to load /usr/lib/libjrrd.so: NO
- trying to load /usr/lib/jni/libjrrd.so: NO
- trying to load /usr/lib/libjrrd.so: NO
- trying to load /usr/local/lib/libjrrd.so: NO
- trying to load /opt/NMSjicmp/lib/32/libjrrd.so: NO
- trying to load /opt/NMSjicmp/lib/64/libjrrd.so: NO
- trying to load /opt/NMSjicmp6/lib/32/libjrrd.so: NO
- trying to load /opt/NMSjicmp6/lib/64/libjrrd.so: NO
- Failed to load the optional jrrd library.
- This error is not fatal, since jrrd is only required for optional features.
- For more information, see http://www.opennms.org/index.php/jrrd
- using SQL directory... /usr/share/opennms/etc
- using create.sql... /usr/share/opennms/etc/create.sql
* using 'postgres' as the PostgreSQL user for OpenNMS
* using 'opennms' as the PostgreSQL database name for OpenNMS
Exception in thread "main" org.opennms.core.schema.MigrationException: an error occurred creating the OpenNMS database
at org.opennms.core.schema.Migrator.createDatabase(Migrator.java:428)
at org.opennms.core.schema.Migrator.prepareDatabase(Migrator.java:444)
at org.opennms.install.Installer.install(Installer.java:236)
at org.opennms.install.Installer.main(Installer.java:949)
Caused by: org.postgresql.util.PSQLException: ERROR: encoding UTF8 does not match locale en_US
Detail: The chosen LC_CTYPE setting requires encoding LATIN1.
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2102)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1835)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:500)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:374)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:366)
at org.opennms.core.schema.Migrator.createDatabase(Migrator.java:425)
... 3 more
Liste der Datenbanken:
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+---------+-------+-----------------------
postgres | postgres | LATIN1 | en_US | en_US |
rhq | rhqadmin | LATIN1 | en_US | en_US |
template0 | postgres | LATIN1 | en_US | en_US | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | LATIN1 | en_US | en_US | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
Benutzt habe ich die folgenden 3 initdb Optionen, aber keiner von Ihnen arbeiten
/usr/local/pgsql/bin/initdb -E UTF-8 --pgdata=/usr/local/pgsql/data
/usr/local/pgsql/bin/initdb -E LATIN1 --pgdata=/usr/local/pgsql/data
/usr/local/pgsql/bin/initdb -E en_US.UTF8 --pgdata=/usr/local/pgsql/data
Außerdem brauche ich, um alle Daten zu löschen in /usr/local/pgsql/data
bevor ich mit initdb
?
Anhängen locale-Befehl stdout:
$locale
LANG=en_US
LANGUAGE=en_US:
LC_CTYPE="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE="en_US"
LC_MONETARY="en_US"
LC_MESSAGES="en_US"
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=
InformationsquelleAutor der Frage kamal | 2012-10-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Danke für
locale
Ausgabe. OpenNMS zu sein scheint, mit Ihrer en_US (nicht-UTF-8-Gebietsschema um postgres-db, und das ist falsch. Sollte dies funktionieren:InformationsquelleAutor der Antwort mvp
Bin ich der Beantwortung dieser denn nichts von StackOverFlow für mich gearbeitet.
Kombinierte ich zwei Lösungen von anderen Seiten, hab den job (diese Antwort funktioniert für Ubuntu server 12.04 und PGSQL 9.1):
Eine Datei erstellen:
nano /etc/profile.d/lang.sh
Fügen Sie die folgenden
Speichern
Shell neu starten oder führen Sie alle export-Befehle manuell in der aktuellen shell-Instanz
Neu konfigurieren, so kann das encoding UTF8 sein ([von hier][1])
Verwenden template1 für db-Erstellung.
Ich hoffe, das hilft 😉
InformationsquelleAutor der Antwort Avia
Dies ist passiert, weil Ihr system-setup zu verwenden Latin1-Kodierung statt UTF-8. Ihre Sprache ist korrekt eingestellt auf de_de, aber die Kodierung nicht auf UTF-8 eingestellt. Versuchen Sie dies ausführen:$
Dies mitteilen, dass Sie alle Ihre Anwendungen, die installiert werden, nachdem die änderung (glaube ich) für die englische Sprache mit unicode-Codierung. Mehr Informationen finden Sie hier: https://www.linux.com/learn/docs/ldp/790-Unicode-HOWTO#s3
Hatte ich ein ähnliches Problem wie ich:
dann postregsql wusste, dass Sie sich für die englische Sprache mit unicode-Codierung.
Natürlich könnte man dies auf eine pro-Datenbank-basis, wie hier beschrieben: http://www.postgresql.org/docs/9.1/static/multibyte.html
InformationsquelleAutor der Antwort Tomasz Iniewicz
dieser arbeitete für mich:
InformationsquelleAutor der Antwort psychok7
Ändern des Gebietsschemas und Sprachen von SO für Kompatibilität mit BD.
dpkg-reconfigure locales
genießen!
InformationsquelleAutor der Antwort Igor Palácio
Treffe ich auf den ähnlichen Fehler. alte Datenbank LC_CTYPE ist UTF-8, aber die neue ist en_US.UTF-8 habe ich das problem lösen nach der reinit-Datenbank.
Sollten Sie die Wahl der richtigen parameter-E
InformationsquelleAutor der Antwort jadeydi