Sto usando PostgreSQL 9.1. Cercando di applicare la codifica UTF8 come predefinita.Cosa c'è di sbagliato in initdb postgresql? Perché la codifica `UTF-8` non viene applicata?
Questo è quello che sto facendo.
service postgresql initdb -E 'UTF-8' --lc-collate='en_US.UTF-8' --lc-ctype=locale='en_US.UTF-8';
Anche se il processo initilization va avanti senza alcun problema,
un \l
al prompt psql
dà lì dettagli.
List of databases
Name | Owner |Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+---------+-------+-----------------------
postgres | postgres | LATIN1 | en_US | en_US|
Perché la codifica UTF-8
non viene applicata?
Hai ragione. Sebbene non potessi eseguire 'initdb' direttamente come superutente. ha dato un 'initdb: non può essere eseguito come root Effettuare il login (usando, ad es.," su ") come utente (non privilegiato) che eseguirà il processo del server. Dopo aver effettuato l'accesso come utente non privilegiato, sono riuscito a inizializzare il db con la codifica corretta. – ThinkingMonkey
Hai dimenticato che è un po 'pignolo, ha aggiornato la risposta con il set completo di comandi che potrebbero essere necessari. – Eelke
Ciao ragazzi! Hai idea del motivo per cui ottengo: ** initdb: nome locale non valido "'en_US.UTF-8'" **? Ho anche provato senza le virgolette, ma poi ottengo ** initdb: nome locale non valido "en_US.UTF-8" **. Ho scaricato i binari Postgresql9.4.1 (non l'installer) per Windows. La versione locale en_US.UTF-8 non è disponibile nei file binari di Windows? –