新しいubuntuインストールでは、en_US.UTF-8ロケールがまだ定義されていません。したがって、ダンプファイルを復元しようとすると、ダンプファイルは次のようなことを試みます。
CREATE DATABASE <database> WITH TEMPLATE = ... LC_COLLATE = 'en_US.UTF-8'...
ただし、「en_US.UTF-8」は新しいubuntuサーバーでは定義されていません。まず、これを確認できます:
# list all "known" locales. In my case, on new Ubuntu 20, I get:
$ locale -a
C
C.UTF-8
POSIX
既存の/etc/locale.gen
を編集します 可能なロケールのリストを含むファイル。ほとんどのロケールはコメントアウトされます。これらのは定義されません 、したがって、「en_US.UTF-8」で行のコメントを解除します。
(ルートとして)locale-genを実行します。
root# locale-gen
Generating locales (this might take a while)...
en_US.UTF-8... done
Generation complete.
構成済みのロケールになっていることに注意してください:
$ locale -a
C
C.UTF-8
POSIX
en_US.utf8
(はい、小文字のutf8
です 、問題ありません)
再起動 postgresサーバー(新しいロケールが表示されるため、ubuntuサーバー自体を再起動する必要はありません)を復元し、shownowが機能するように復元します。