Windows

從 Ubunu 複製到 Win 10 時,Postgresql 10 中的區域設置不兼容錯誤

  • January 1, 2022

我的 Ubuntu PG-10 DB 中可用的語言環境是 en_US.UTF-8。在 Win-10 中對 PG-10 DB 執行 PG_Basebackup 時,Psql 連接失敗並出現錯誤

psql:致命:數據庫區域設置與作業系統不兼容詳細資訊:數據庫使用 LC_COLLATE“en_US.UTF-8”初始化,setlocale() 無法辨識。提示:使用另一個語言環境重新創建數據庫或安裝缺少的語言環境。

Win10 中可用的語言環境是

                         List of databases
  Name    | Owner      | Encoding | Collate | Ctype | 
-----------+------------+----------+---------+-------+-
postgres  | postgres   | UTF8     | en-US   | en-US |



                                          List of databases
  Name    | Owner    | Encoding |          Collate           |           Ctype            | 
-----------+----------+----------+----------------------------+----------------------------+
postgres  | postgres | UTF8     | English_United States.1252 | English_United States.1252 |

但是在進行 Basebackup 時,上述語言環境並未採用。對此問題的任何修復。

您不能在兩個不同的作業系統之間複製數據目錄(這是 pg_basebackup 所做的)。缺少語言環境只是一種症狀。如果您需要在 Linux 和 Windows 之間進行複制,請使用邏輯複製a_horse_with_no_name

嘗試使用此命令手動設置語言環境

sudo localedef -f CP1252 -i en_US English_United
sudo localedef -f CP1252 -i en_US "English_United States.1252"

然後重新啟動您的 postgres 數據庫伺服器

引用自:https://dba.stackexchange.com/questions/242089