首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法连接到本地postgres容器

无法连接到本地postgres容器
EN

Stack Overflow用户
提问于 2022-02-20 13:55:44
回答 1查看 305关注 0票数 0

我是新来的码头和邮递员,这真是令我费解。在提取postgres 14.1高寒映像之后,我从名为postgres14.1的映像中创建了一个容器,用于设置用户和密码:

代码语言:javascript
复制
docker run --name postgres14.1 -p 5432:5432 -e POSTGRES_USER=root -e POSTGRES_PASSWORD=secret -d postgres:14.1-alpine

然后,我在容器上创建了一个名为“simple_bank”的数据库:

代码语言:javascript
复制
docker exec -it postgres14.1 createdb --username=root --owner=root simple_bank

在用postgres扩展连接到TablePlus或VSCode中的数据库之前,我尝试在终端中访问:

代码语言:javascript
复制
docker exec -it postgres14.1 psql simple_bank

而且效果很好。在终端中,\du+确认root确实是simple_bank数据库中的超级用户:

代码语言:javascript
复制
Role name |                         Attributes                         | Member of | Description 
-----------+------------------------------------------------------------+-----------+-------------
 root      | Superuser, Create role, Create DB, Replication, Bypass RLS | {}        | 

然后,我尝试使用以下配置通过TablePlus连接:

代码语言:javascript
复制
Host/Socket: 127.0.0.1
Port:5432
User:root
Password:secret
Database:root

这是不能连接的,说角色root不退出。如果将用户保留为空白,并将数据库设置为postgres,则该数据库将连接,但它无法找到从命令行创建的simple_bank数据库。

EN

回答 1

Stack Overflow用户

发布于 2022-02-21 02:04:57

最后,问题在于我已经安装了postgres的本地实例,并且默认情况下它还连接到本地计算机上的端口5432。因此,在创建postgres容器时,我需要在本地主机上选择不同的端口。因此,更改下面的docker命令,然后使用端口5433进行本地连接,就解决了这个问题。

代码语言:javascript
复制
docker run --name postgres14.1 -p 5433:5432 -e POSTGRES_USER=root -e POSTGRES_PASSWORD=secret -d postgres:14.1-alpine
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71195100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档