PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

pg_restore không thể thực hiện truy vấn:ERROR:tên miền không hợp lệ:en_US.UTF-8

Cài đặt ubuntu mới của bạn chưa xác định ngôn ngữ en_US.UTF-8. Vì vậy, khi bạn đang cố gắng khôi phục tệp kết xuất, tệp kết xuất sẽ cố gắng thực hiện một số việc như:

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

Tuy nhiên, 'en_US.UTF-8' không được xác định bởi máy chủ ubuntu mới của bạn. Trước tiên, bạn có thể xác minh điều này:

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

Chỉnh sửa /etc/locale.gen hiện có tệp, chứa danh sách các ngôn ngữ có thể có. Hầu hết các ngôn ngữ sẽ được nhận xét. Những sẽ không được xác định , vì vậy, hãy bỏ nhận xét dòng bằng 'en_US.UTF-8'.

Chạy (dưới dạng root) locale-gen.

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

Lưu ý rằng bây giờ nó là một ngôn ngữ được định cấu hình:

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

(Có, nó là chữ thường utf8 , không thành vấn đề)

Khởi động lại máy chủ postgres của bạn (vì vậy nó nhìn thấy ngôn ngữ mới - bạn không cần phải khởi động lại chính máy chủ ubuntu) và bạn khôi phục hiển thị bây giờ hoạt động.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:KHÔNG VÀO so với EXCEPT sự khác biệt về hiệu suất (đã chỉnh sửa # 2)

  2. Phát hiện và xóa khoảng trống trong chuỗi thời gian

  3. Postgresql:Cách tìm tệp pg_hba.conf bằng Mac OS X

  4. Bộ lọc truy vấn Django sử dụng mảng id lớn trong Postgres DB

  5. GROUP BY trong mệnh đề UPDATE FROM