PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

pg_restore konnte Abfrage nicht ausführen:FEHLER:ungültiger Gebietsschemaname:en_US.UTF-8

Ihre neue Ubuntu-Installation hat das Gebietsschema en_US.UTF-8 noch nicht definiert. Wenn Sie also versuchen, die Speicherauszugsdatei wiederherzustellen, versucht die Speicherauszugsdatei, Folgendes zu tun:

CREATE DATABASE <database> WITH TEMPLATE = ... LC_COLLATE = 'en_US.UTF-8'...

„en_US.UTF-8“ wird jedoch nicht von Ihrem neuen Ubuntu-Server definiert. Zuerst können Sie dies überprüfen:

# list all "known" locales. In my case, on new Ubuntu 20, I get:
$ locale -a
C
C.UTF-8
POSIX

Bestehende /etc/locale.gen bearbeiten Datei, die die Liste möglicher Gebietsschemas enthält. Die meisten Gebietsschemata werden auskommentiert. Diese werden nicht definiert , kommentieren Sie die Zeile also mit „en_US.UTF-8“ aus.

Führen Sie (als Root) locale-gen.

aus
root# locale-gen
Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.

Beachten Sie, dass es jetzt ein konfiguriertes Gebietsschema ist:

$ locale -a
C
C.UTF-8
POSIX
en_US.utf8

(Ja, es ist utf8 in Kleinbuchstaben , kein Problem)

Neu starten Ihr Postgres-Server (damit er das neue Gebietsschema sieht – Sie müssen den Ubuntu-Server selbst nicht neu starten) und Sie stellen die Funktion „Show Now“ wieder her.