sql >> Database teknologi >  >> RDS >> PostgreSQL

pg_restore kunne ikke udføre forespørgsel:FEJL:ugyldigt lokalitetsnavn:en_US.UTF-8

Din nye ubuntu-installation har endnu ikke defineret en_US.UTF-8-lokaliteten. Så når du forsøger at gendanne dumpfilen, forsøger dumpfilen at gøre noget som:

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

Men 'en_US.UTF-8' er ikke defineret af din nye ubuntu-server. Først kan du bekræfte dette:

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

Rediger eksisterende /etc/locale.gen fil, som indeholder listen over mulige lokaliteter. De fleste lokaliteter vil blive kommenteret ud. Disse vil ikke blive defineret , så fjern kommentering af linjen med 'en_US.UTF-8'.

Kør (som root) locale-gen.

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

Bemærk, at det nu er en konfigureret lokalitet:

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

(Ja, det er små bogstaver utf8 , ikke et problem)

Genstart din postgres-server (så den ser den nye lokalitet -- du behøver ikke at genstarte selve ubuntu-serveren), og du gendanner show now work.



  1. MYSQL variabel IN klausul

  2. hvorfor opdeler vi en mysql-tabel i mange mindre tabeller?

  3. Gemmer et billede i MySQL fra Java

  4. Installer venligst mysql-adapter 'gem install activerecord-mysql-adapter'