我建立了一个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-05:
还从运行Amazon Linux release 2 (Karoo)
的Amazon映像(与psql 9取得与版本10相同的结果)中进行了尝试。版本10的安装遵循this的建议。
答案 0 :(得分:0)
已解决,仍然是一个很糟糕的问题!
我使用secrets.token_urlsafe(90)
Python3方法生成了PostgreSQL密码,这导致了psql无法处理的字符串,包括[_-]。
通过正确选择使用secrets.choice(string.ascii_uppercase)
1解决了这个问题!
长话短说:仅使用字符和数字作为密码,您将没有任何问题!