我正在尝试将我的GCP Compute Engine实例Ubuntu 16.04连接到GCP Cloud SQL PostgreSQL数据库。
我已经遵循the documentation中的所有说明,但是当我输入连接数据库的命令时:
psql -h [CLOUD_SQL_PUBLIC_IP_ADDR] -U postgres
结果是:
psql: FATAL: Peer authentication failed for user "postgres"
我已经在CloudSQL端和ComputeEngine端都进行了身份验证,所以我不确定为什么会出错。
我要连接的数据库在同一项目中,并且命令
gcloud sql instances list
在清单中显示数据库。但是,命令
sudo -u postgres psql my-db
返回
psql: FATAL: database "my-db" does not exist
预期结果是打开了一个psql连接,但是却得到了一个psql:致命:用户“ postgres”的对等身份验证失败。
答案 0 :(得分:1)
我已经按照您posted文档中的说明进行操作,并且能够使用公共IP地址从我的Compute Engine实例(Ubuntu 16.04)成功连接。
我执行的步骤记录在“ Connecting using a public IP address”中:
1- Added a static IPv4 IP address到Compute Engine实例。为此,请导航至云控制台> VPC网络>外部IP地址,然后单击按钮“保留静态地址”。
2- Authorize the static IP address(作为可连接到Cloud SQL实例的网络的Compute Engine实例)。
3- Connect via SSH button到您的Compute Engine实例。
4-安装psql客户端:
$ sudo apt-get更新
$ sudo apt-get install postgresql-client
5-找到CLOUD_SQL_PUBLIC_IP_ADDR
$ gcloud sql实例列表:
6-并使用psql客户端连接到Cloud SQL实例,确保用户和数据库确实存在:
$ psql -h [CLOUD_SQL_PUBLIC_IP_ADDR] -U [USER] -d [DATABASE]
此外,以下命令对我来说也很好:
$ psql [USER] -h [CLOUD_SQL_PUBLIC_IP_ADDR] -d [数据库]
然后将要求您输入用户的密码和密码。
能否请您按照上面的说明进行操作,以验证它是否适合您? 在使用SSL之前,您是否配置了加密连接?