PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

pg_restore nie może wykonać zapytania:BŁĄD:nieprawidłowa nazwa lokalizacji:en_US.UTF-8

Twoja nowa instalacja Ubuntu nie ma jeszcze zdefiniowanej lokalizacji en_US.UTF-8. Tak więc, gdy próbujesz przywrócić plik zrzutu, plik zrzutu próbuje zrobić coś takiego:

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

Ale „en_US.UTF-8” nie jest zdefiniowany przez twój nowy serwer ubuntu. Najpierw możesz to zweryfikować:

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

Edytuj istniejący /etc/locale.gen plik, który zawiera listę możliwych lokalizacji. Większość lokalizacji zostanie wykomentowanych. Te nie zostaną zdefiniowane , więc odkomentuj linię za pomocą 'en_US.UTF-8'.

Uruchom (jako root) locale-gen.

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

Zauważ, że jest to teraz skonfigurowany język:

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

(Tak, małe litery utf8 , to nie problem)

Uruchom ponownie twój serwer postgres (więc widzi nowe ustawienia regionalne -- nie musisz restartować samego serwera ubuntu) i przywracasz show teraz działa.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Samodzielne dostarczanie kont użytkowników w PostgreSQL za pośrednictwem nieuprzywilejowanego dostępu anonimowego

  2. Błąd podniesienia selera podczas przekazywania mojego obiektu queryset jako parametru

  3. PostgreSQL 'NIE W' ​​i podzapytanie

  4. Jakie polecenia uruchamia `heroku pgbackups:capture` na serwerze, aby wykonać kopie zapasowe?

  5. Czy Postgres przepisuje cały wiersz podczas aktualizacji?