【发布时间】:2018-12-07 01:21:35
【问题描述】:
问题
我设置了一个 AWS RDS PostgreSQL 10.4 数据库。数据集位于专用网络中,因此,我使用堡垒将连接转发给它。然后我可以使用 Postico 进行连接,但不能使用 psql。
详情
我使用 brew install postgres 在本地安装了 PostgreSQL。命令输出是(在 AWS 实例上查看更新):
❯ psql --version
psql (PostgreSQL) 10.5
然后我使用下面的 SSH 命令来隧道:
ssh -q -o "ConnectTimeout 3" -o "StrictHostKeyChecking no" -o "UserKnownHostsFile /dev/null" -i bastion-key.pem -L 5432:xxxxxx.xxxxx.eu-central-1.rds.amazonaws.com:5432 ec2-user@xx.xx.xx.xx -N
然后我使用 Postico 连接 .. 一切正常!
最后但同样重要的是,我尝试使用以下命令进行连接:
❯ psql \
--host=127.0.0.1 \
--port=5432 \
--username=USERNAME \
--password \
--dbname=DBNAME
Password for user USERNAME:
psql: FATAL: password authentication failed for user "USERNAME"
FATAL: password authentication failed for user "USERNAME"
我使用的是 macOS High Sierra 版本 10.13.6 Macbook 13"。
2018 年 12 月 5 日更新:
还从运行 Amazon Linux release 2 (Karoo) 的 Amazon 映像中进行了尝试,结果与 psql 9 与版本 10 相同。版本 10 是按照 this 推荐安装的。
【问题讨论】:
-
是否 brew 启动了一个已经在端口 5432 上运行的本地 postgres?为了安全起见,为您的隧道和 psql 命令使用其他本地端口,这样您就可以确定您没有连接到本地 postgresql 服务器。
-
ps aux 没有显示任何进程,因为我在确定它是 AWS 之前使用 Postico 对其进行了测试
-
在这种情况下,从你得到的错误中我可以看到你有一个连接,并且 pg_hba 中没有任何东西阻止你,所以你的用户名或密码一定有错误。请注意,当您不引用它们时,postgresql 会将标识符设为小写,因此如果您使用
create user MyUser ...,用户名实际上将变为myuser! -
用户名是小写的,没有特殊字符我只是用 USERNAME 字符串替换它
-
会不会是散列问题?
标签: postgresql rds