sql >> データベース >  >> RDS >> PostgreSQL

pg_restoreはクエリを実行できませんでした:エラー:無効なロケール名:en_US.UTF-8

    新しい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が機能するように復元します。



    1. Java / MySQL-別のクラスから接続にアクセスする方法は?

    2. 3から6までのランダムなint値を生成します

    3. T-SQL(SQL Server)で重複キーエラーを無視する方法

    4. SQL選択して、値を1回だけ表示します