bitnami Postgresql 16.2 用户角色不存在密码验证失败

问题描述 投票:0回答:1

我正在尝试运行 bitnami/postgresql:16.2.0 docker 镜像,但没有成功。

步骤如下:

  1. 停止容器,删除容器,清理“数据”目录

docker stop RR15 ; docker rm RR15 ; rm -rf ~/containers/postgres16.2/data/

  1. 这是我的自定义

    pg_hba.conf
    (只有2行未注释):

    托管所有0.0.0.0/0 md5

    托管所有 127.0.0.1/32 md5

  2. 运行docker

docker run --name RR15 -p 5432:5432 -v ~/containers/postgres16.2:/bitnami/postgresql -v ~/containers/postgres16.2/conf:/bitnami/postgresql/conf -e POSTGRESQL_USERNAME=user1 -e POSTGRESQL_PASSWORD=pwduser1 -e POSTGRESQL_DATABASE=postgres -e POSTGRESQL_POSTGRES_PASSWORD=postgres bitnami/postgresql:16.2.0 

所以

  • POSTGRESQL_USERNAME=用户1
  • POSTGRESQL_PASSWORD=pwduser1
  • POSTGRESQL_DATABASE=postgres
  • POSTGRESQL_POSTGRES_PASSWORD=postgres. (更多有关此参数的信息

一旦我执行命令,它就会启动和停止,看起来很好......没有问题,完整细节在这里:

postgresql 19:03:04.46 INFO  ==> 
postgresql 19:03:04.46 INFO  ==> Welcome to the Bitnami postgresql container
postgresql 19:03:04.46 INFO  ==> Subscribe to project updates by watching https://github.com/bitnami/containers
postgresql 19:03:04.46 INFO  ==> Submit issues and feature requests at https://github.com/bitnami/containers/issues
postgresql 19:03:04.47 INFO  ==> Upgrade to Tanzu Application Catalog for production environments to access custom-configured and pre-packaged software components. Gain enhanced features, including Software Bill of Materials (SBOM), CVE scan result reports, and VEX documents. To learn more, visit https://bitnami.com/enterprise
postgresql 19:03:04.47 INFO  ==> 
postgresql 19:03:04.48 INFO  ==> ** Starting PostgreSQL setup **
postgresql 19:03:04.50 INFO  ==> Validating settings in POSTGRESQL_* env vars..
postgresql 19:03:04.52 INFO  ==> Loading custom pre-init scripts...
postgresql 19:03:04.52 INFO  ==> Initializing PostgreSQL database...
postgresql 19:03:04.53 INFO  ==> Custom configuration /opt/bitnami/postgresql/conf/postgresql.conf detected
postgresql 19:03:04.53 INFO  ==> Custom configuration /opt/bitnami/postgresql/conf/pg_hba.conf detected
postgresql 19:03:08.14 INFO  ==> Starting PostgreSQL in background...
postgresql 19:03:08.26 INFO  ==> Changing password of postgres
postgresql 19:03:08.27 INFO  ==> Stopping PostgreSQL...
waiting for server to shut down.... done
server stopped

我再次说明容器,到目前为止看起来不错:

2024-03-18 12:03:14 postgresql 19:03:14.78 INFO  ==> 
2024-03-18 12:03:14 postgresql 19:03:14.79 INFO  ==> Welcome to the Bitnami postgresql container
2024-03-18 12:03:14 postgresql 19:03:14.79 INFO  ==> Subscribe to project updates by watching https://github.com/bitnami/containers
2024-03-18 12:03:14 postgresql 19:03:14.79 INFO  ==> Submit issues and feature requests at https://github.com/bitnami/containers/issues
2024-03-18 12:03:14 postgresql 19:03:14.79 INFO  ==> Upgrade to Tanzu Application Catalog for production environments to access custom-configured and pre-packaged software components. Gain enhanced features, including Software Bill of Materials (SBOM), CVE scan result reports, and VEX documents. To learn more, visit https://bitnami.com/enterprise
2024-03-18 12:03:14 postgresql 19:03:14.79 INFO  ==> 
2024-03-18 12:03:14 postgresql 19:03:14.81 INFO  ==> ** Starting PostgreSQL setup **
2024-03-18 12:03:14 postgresql 19:03:14.82 INFO  ==> Validating settings in POSTGRESQL_* env vars..
2024-03-18 12:03:14 postgresql 19:03:14.83 INFO  ==> Loading custom pre-init scripts...
2024-03-18 12:03:14 postgresql 19:03:14.83 INFO  ==> Initializing PostgreSQL database...
2024-03-18 12:03:14 postgresql 19:03:14.84 INFO  ==> Custom configuration /opt/bitnami/postgresql/conf/postgresql.conf detected
2024-03-18 12:03:14 postgresql 19:03:14.84 INFO  ==> Custom configuration /opt/bitnami/postgresql/conf/pg_hba.conf detected
2024-03-18 12:03:14 postgresql 19:03:14.86 INFO  ==> Deploying PostgreSQL with persisted data...
2024-03-18 12:03:14 postgresql 19:03:14.86 INFO  ==> Loading custom scripts...
2024-03-18 12:03:14 postgresql 19:03:14.87 INFO  ==> ** PostgreSQL setup finished! **
2024-03-18 12:03:14 
2024-03-18 12:03:14 postgresql 19:03:14.88 INFO  ==> ** Starting PostgreSQL **
2024-03-18 12:03:14 2024-03-18 19:03:14.901 GMT [1] LOG:  pgaudit extension initialized
2024-03-18 12:03:14 2024-03-18 19:03:14.921 GMT [1] LOG:  starting PostgreSQL 16.2 on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2024-03-18 12:03:14 2024-03-18 19:03:14.922 GMT [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2024-03-18 12:03:14 2024-03-18 19:03:14.922 GMT [1] LOG:  listening on IPv6 address "::", port 5432
2024-03-18 12:03:14 2024-03-18 19:03:14.925 GMT [1] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
2024-03-18 12:03:14 2024-03-18 19:03:14.934 GMT [55] LOG:  database system was shut down at 2024-03-18 19:03:08 GMT
2024-03-18 12:03:14 2024-03-18 19:03:14.944 GMT [1] LOG:  database system is ready to accept connections

现在我尝试以 user1 身份使用 pwduser1 连接到 postgres:

2024-03-18 12:05:49 2024-03-18 19:05:49.737 GMT [62] FATAL:  password authentication failed for user "user1"
2024-03-18 12:05:49 2024-03-18 19:05:49.737 GMT [62] DETAIL:  Role "user1" does not exist.
2024-03-18 12:05:49     Connection matched file "/opt/bitnami/postgresql/conf/pg_hba.conf" line 96: "host    all             all                 0.0.0.0/0               md5"

对于 postgres 来说也是如此,密码为“postgres”到 postgres DB:

2024-03-18 12:04:33 2024-03-18 19:04:33.260 GMT [60] FATAL:  password authentication failed for user "postgres"
2024-03-18 12:04:33 2024-03-18 19:04:33.260 GMT [60] DETAIL:  User "postgres" has no password assigned.
2024-03-18 12:04:33     Connection matched file "/opt/bitnami/postgresql/conf/pg_hba.conf" line 96: "host    all             all                 0.0.0.0/0               md5"

我不确定这里出了什么问题,我正在尝试查找原因。我可以使用类似绷带的解决方案,例如连接和更改密码,或对本地主机使用“信任”。但是,我更喜欢创建正确的 Docker 命令。

我对 v15.4 进行了相同的设置,并且运行得很好。感觉问题与体积映射有关。

如有任何帮助,我们将不胜感激!

postgresql docker bitnami
1个回答
0
投票

不是立即,但在大约 15 分钟内我已经重复了你的情况。

差异:

  • 使用
    podman
    代替
    docker
    (附近没有安装最后一个)
  • 在主机系统上使用端口 55432 而不是 5432(最后一个端口对我来说已经很忙了)
  • 使用
    --mount
    代替
    -v
    ,并且可以选择
    U=true
    来获得适当的目录权限
  • 使用
    scram-sha-256
    哈希代替
    md5

完成所有这些后,我能够使用 psql 连接服务器。

[admin200 /]$ podman version
Client:       Podman Engine
Version:      4.9.0
API Version:  4.9.0
Go Version:   go1.21.6
Built:        Wed Jan 24 13:07:27 2024
OS/Arch:      linux/amd64
[admin200 /]$ cd ~/
[admin200 ~]$ TMPDIR=$(mktemp -p$(realpath .) -d)
[admin200 ~]$ cd ${TMPDIR}
[admin200 tmp.TMsoFC5xs8]$ mkdir basedir
[admin200 tmp.TMsoFC5xs8]$ mkdir conf
[admin200 tmp.TMsoFC5xs8]$ echo 'host all all 0.0.0.0/0 scram-sha-256' > conf/pg_hba.conf
[admin200 tmp.TMsoFC5xs8]$ podman run -d \
--name pb16 \
-p 127.0.0.1:55432:5432 \
--mount type=bind,source="${TMPDIR}/basedir",destination=/bitnami/postgresql,U=true \
--mount type=bind,source="${TMPDIR}/conf",destination=/bitmani/postgresql/conf,U=true \
-e POSTGRESQL_USERNAME=user1 \
-e POSTGRESQL_PASSWORD=la50360329x \
-e POSTGRESQL_DATABASE=database1 \
docker.io/bitnami/postgresql:16.2.0
56ea65776fd187c86f960a4d74cffeef9d5fdffbe7d3194c40df44cb8a153aa4
[admin200 tmp.TMsoFC5xs8]$ PGPASSWORD=la50360329x PGSSLMODE=disable psql -h 127.0.0.1 -p 55432 -U user1 -d database1 -c '\l'
                                                       List of databases
   Name    |  Owner   | Encoding | Locale Provider |   Collate   |    Ctype    | ICU Locale | ICU Rules |   Access privileges   
-----------+----------+----------+-----------------+-------------+-------------+------------+-----------+-----------------------
 database1 | user1    | UTF8     | libc            | en_US.UTF-8 | en_US.UTF-8 |            |           | =Tc/user1            +
           |          |          |                 |             |             |            |           | user1=CTc/user1
 postgres  | postgres | UTF8     | libc            | en_US.UTF-8 | en_US.UTF-8 |            |           | 
 template0 | postgres | UTF8     | libc            | en_US.UTF-8 | en_US.UTF-8 |            |           | =c/postgres          +
           |          |          |                 |             |             |            |           | postgres=CTc/postgres
 template1 | postgres | UTF8     | libc            | en_US.UTF-8 | en_US.UTF-8 |            |           | =c/postgres          +
           |          |          |                 |             |             |            |           | postgres=CTc/postgres
(4 rows)

[admin200 tmp.TMsoFC5xs8]$ sudo ls -la basedir/data/
total 96
drwx------ 19 201000 domain users 4096 Mar 19 00:08 .
drwxr-xr-x  3 201000 domain users 4096 Mar 19 00:08 ..
-rw-------  1 201000 domain users    3 Mar 19 00:08 PG_VERSION
drwx------  6 201000 domain users 4096 Mar 19 00:08 base
drwx------  2 201000 domain users 4096 Mar 19 00:09 global
drwx------  2 201000 domain users 4096 Mar 19 00:08 pg_commit_ts
drwx------  2 201000 domain users 4096 Mar 19 00:08 pg_dynshmem
-rw-------  1 201000 domain users 2640 Mar 19 00:08 pg_ident.conf
drwx------  4 201000 domain users 4096 Mar 19 00:08 pg_logical
drwx------  4 201000 domain users 4096 Mar 19 00:08 pg_multixact
drwx------  2 201000 domain users 4096 Mar 19 00:08 pg_notify
drwx------  2 201000 domain users 4096 Mar 19 00:08 pg_replslot
drwx------  2 201000 domain users 4096 Mar 19 00:08 pg_serial
drwx------  2 201000 domain users 4096 Mar 19 00:08 pg_snapshots
drwx------  2 201000 domain users 4096 Mar 19 00:08 pg_stat
drwx------  2 201000 domain users 4096 Mar 19 00:08 pg_stat_tmp
drwx------  2 201000 domain users 4096 Mar 19 00:08 pg_subtrans
drwx------  2 201000 domain users 4096 Mar 19 00:08 pg_tblspc
drwx------  2 201000 domain users 4096 Mar 19 00:08 pg_twophase
drwx------  3 201000 domain users 4096 Mar 19 00:08 pg_wal
drwx------  2 201000 domain users 4096 Mar 19 00:08 pg_xact
-rw-------  1 201000 domain users   88 Mar 19 00:08 postgresql.auto.conf
-rw-------  1 201000 domain users  249 Mar 19 00:08 postmaster.opts
-rw-------  1 201000 domain users   79 Mar 19 00:08 postmaster.pid
[admin200 tmp.TMsoFC5xs8]$ podman stop pb16
pb16
[admin200 tmp.TMsoFC5xs8]$ cd ..
[admin200 ~]$ rm -rf ${TPMDIR}
© www.soinside.com 2019 - 2024. All rights reserved.