我的目标是将客户端数据库(DBeaver、Aginity Pro)连接到在 docker 容器上运行的 PostgreSQL。
从容器内部,与 Postgres 的连接是成功的。我使用了Adminer 和PSQL,并且连接正常。我可以创建数据库、表格、加载数据。但是,使用来自客户端数据库的相同连接字符串,我收到消息:FATAL: password authentication failed for user "postgres"
如果有人在 Win10 x64 Pro 上与 PostgresqlDocker 和 DBeaver 有工作连接,我将不胜感激,请分享环境及其所做的工作。谢谢你。
这里的步骤:
- 下载适用于 Windows 的 Docker。
- 创建一个 YML 文件。
- 运行 Docker。
- 使用管理员和 PSQL 检查与 Postgres 的连接。成功。
- 使用 DBeaver 和 Aginity Pro 检查与 Postgres 的连接。失败。
文件 YML:
version: '3.6'
services:
db:
image: postgres:9.6-alpine
restart: always
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ports:
- 5432:5432
adminer:
image: adminer
restart: always
ports:
- 8080:8080
运行泊坞窗:
docker-compose up -d
使用 Adminer 和 PSQL 检查连接:
1. 管理员
http://localhost:8080/?pgsql=db&username=postgres&db=postgres&ns=
它显示了管理控制台,我可以看到表格,并创建自己的数据结构。
2.PSQL
在这里,我创建了表格。
docker exec -it postgres_db_1 bash
bash-5.1#
bash-5.1# su postgres
/ $
/ $ psql
psql (9.6.20)
Type "help" for help.
postgres=#
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+------------+------------+-----------------------
postgres | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres +
| | | | | postgres=CTc/postgres
(3 rows)
检查与 DBeaver 的连接
我做了什么来尝试将 Postgres 与 DBeaver 和 Aginity Pro 连接起来:
- 更改图像。我还使用了三个不同的图像:
image: postgres
image: alpine
image: postgres:9-alpine
- 编辑pg_hba.conf。我在“本地”部分添加:
local all postgres ident
我也为信任更改了身份。我在最后补充:
host all all all md5
host all all * trust
我尝试单独使用 md5,也单独使用 trust。
- 我使用以下方法更改了 PSQL 中的用户密码:
ALTER USER postgres PASSWORD 'postgres';
我用portqryui检查了监听端口。这是在听。
=============================================
Starting portqry.exe -n 127.0.0.1 -e 5432 -p TCP ...
Querying target system called:
127.0.0.1
Attempting to resolve IP address to a name...
IP address resolved to kubernetes.docker.internal
querying...
TCP port 5432 (unknown service): LISTENING
portqry.exe -n 127.0.0.1 -e 5432 -p TCP exits with return code 0x00000000.
环境:
- 所以: Windows 10 专业版 x64
- Docker 桌面版: 3.1.0(51484)。引擎:20.10.2。撰写:1.27.1。Kubernetes:v1.19.3。
- DBeaver 版本:社区版 7.3.3
- Aginity Pro 版本: 0.32.836
我使用的突出显示的链接: