PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

pg_restore tidak dapat menjalankan kueri:ERROR:nama lokal tidak valid:en_US.UTF-8

Instalasi ubuntu baru Anda belum menentukan lokal en_US.UTF-8. Jadi, saat Anda mencoba memulihkan file dump, file dump mencoba melakukan sesuatu seperti:

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

Tapi, 'en_US.UTF-8' tidak ditentukan oleh server ubuntu baru Anda. Pertama, Anda dapat memverifikasi ini:

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

Edit /etc/locale.gen yang ada file, yang berisi daftar kemungkinan lokal. Sebagian besar lokal akan dikomentari. ini tidak akan ditentukan , jadi, batalkan komentar pada baris dengan 'en_US.UTF-8'.

Jalankan (sebagai root) locale-gen.

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

Perhatikan sekarang ini adalah lokal yang dikonfigurasi:

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

(Ya, huruf kecil utf8 , tidak masalah)

Mulai ulang server postgres Anda (sehingga ia melihat lokal baru -- Anda tidak perlu me-restart server ubuntu itu sendiri), dan Anda mengembalikan show now work.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memodelkan objek besar PostgreSQL di Rails

  2. Fungsi Kueri Dinamis Postgres

  3. Menghapus catatan dari database postgresql jarak jauh menggunakan daftar yang disediakan secara lokal

  4. Periksa apakah Postgresql mendengarkan

  5. Kueri Java terhadap PGPool II menyebabkan pernyataan siap yang tidak disebutkan namanya tidak ada kesalahan