无法通过postgres进行身份验证



我正在尝试连接和运行postgres容器与psql:

docker pull postgres
docker run -e  POSTGRES_PASSWORD=password -d postgres
C:Program FilesPostgreSQL13bin>psql <myUserName>
Password for user <myUserName>:
此时,当我输入密码时,它显示了错误
psql: error: FATAL:  password authentication failed for user "<myUserName>"

我做错了什么?

当您使用docker run -e POSTGRES_PASSWORD=password -d postgres时,POSTGRES_PASSWORD将被设置为用户postgres的默认值。您可以使用POSTGRES_USER环境指定您的用户。

第二件事是,当你运行一个postgresql容器并且不绑定任何端口时,你不能从外部连接到该容器。因此,您将无法使用纯pqsl命令连接到您的容器。这里你有3种方式连接到你的容器:

1-使用docker run -e POSTGRES_PASSWORD=password -p 5432:5432 -d postgres运行容器,然后使用psql -h <YOUR_IP> -p 5432 -U <USERNAME>连接到它

2-使用docker inspect <CONTAINER_NAME>命令获取您的容器ip,然后使用psql -h <CONTAINER_IP> -U <USERNAME>连接到它

3-使用psql在你的容器与docker exec -it <CONTAINER_NAME> psql -U <USERNAME>

相关内容

最新更新