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

Dockerで実行されているPostgresデータベースがハングし続ける

    これは、Dockerコンテナのユーザー権限の不一致が原因で発生しています。

    コンテナ内の関連ファイルの一覧表示:

    $ docker exec <container> ls -l /var/lib/postgresql/data/pg_stat_tmp
    -rw------- 1 root     root     [...] db_0.stat
    -rw------- 1 root     root     [...] db_1.stat
    -rw------- 1 root     root     [...] db_2.stat
    -rw------- 1 postgres postgres [...] global.stat
    

    すべてのdb_*.stat ファイルはroot:rootが所有しています 、global.stat postgres:postgresが所有しています 。

    dockerユーザーを確認すると、次のようになります。

    $ docker exec <container> whoami
    root
    

    したがって、これらのファイルはすべてpostgresユーザーが所有する必要があります。幸いなことに、これは非常に簡単です。ユーザーをpostgresに設定するだけです 、再起動してください!

    dockerfileの場合:

    USER postgres
    

    docker-composeの使用:

    services:
      postgres:
        image: postgres:13
        user: postgres
    


    1. 順序付けられていない方法で文字列を比較するOracle関数

    2. PyMySQLを使用すると、RDSに接続できません

    3. 循環外部キーを使用して2つのテーブルから削除する

    4. 2つの日付の日/月/年(datediff)の差を取得するにはどうすればよいですか?