使用PostgreSQL将GCP Compute引擎连接到GCP Cloud SQL

时间:2019-08-29 20:57:31

标签: postgresql google-compute-engine google-cloud-sql

我正在尝试将我的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”的对等身份验证失败。

1 个答案:

答案 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之前,您是否配置了加密连接?