微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

GCE 无法访问私有 SQL

如何解决GCE 无法访问私有 SQL

我尝试从 GCE 实例访问 Cloud sql 实例,该实例是私有的并且具有私有服务连接。

根据私有服务访问文档,我设置了 VPC 和 FW,并在同一个 VPC 中创建 sql 和 GCE。 https://cloud.google.com/vpc/docs/configure-private-services-access

但是在 GCE 中,ping 到 sql 实例,也没有 sql 连接。

  1. 创建专有网络

gcloud 计算网络创建 test-custom-vpc --subnet-mode=custom --bgp-routing-mode=global --mtu=1460

  1. 创建子网

gcloud 计算网络子网创建 vpc-sb-1 --network=test-custom-vpc --range=10.100.0.0/16 --region=asia-northeast1

  1. 为专用服务连接创建 IP 范围

gcloud 计算地址创建 vpc-peering-range --global --purpose=VPC_PEERING
--addresses=192.168.0.0 --prefix-length=16 --description=description --network=test-custom-vpc

  1. sql 创建 VPC 对等

gcloud services vpc-peerings connect --service=servicenetworking.googleapis.com --ranges=vpc-peering-range --network=test-custom-vpc --project=my-project

  1. 在 VPC 中创建 MysqL

gcloud --project=my-project beta sql 实例创建 vpc-sql-1 --network=test-custom-vpc --no-assign-ip

  1. 在 VPC 中创建 GCE 实例

gcloud 计算实例创建 vm-in-sb-1 --subnet vpc-sb-1 --zone asia-northeast1-b

  1. 创建 FW 规则,目前允许所有 IP/协议

gcloud compute firewall-rules create allow-all --network test-custom-vpc --direction ingress --action allow --rules all


然后,我将使用 ssh 访问 VM 并检查 VM 和 sql间的连接

gcloud sql 实例列表 名称 DATABASE_VERSION LOCATION TIER PRIMARY_ADDRESS PRIVATE_ADDRESS STATUS vpc-sql-1 MysqL_5_7 us-central1-b db-n1-standard-1 - 192.168.0.3 可运行

-> sql 私有 IP 为 192.168.0.3

  1. ssh 登录

gcloud beta 计算 ssh --zone "asia-northeast1-b" "vm-in-sb-1" --project "my-project"

  1. 检查连接

ping 192.168.0.3

没有反应

psql -h 192.168.0.3 -U postgres 罢工>

MysqL --host=192.168.0.3 --user=root --password

psql:无法连接到服务器:连接超时 服务器是否在主机“192.168.0.3”上运行并接受 端口 5432 上的 TCP/IP 连接?


我不知道什么配置有问题

解决方法

我复制了您的案例,所有配置都运行良好,但请注意,在步骤 #5 中使用下面的命令将为 Mysql 创建一个 Cloud SQL 实例,而不是用于 Postgres :

gcloud --project=my-project beta sql instances create vpc-sql-1 --network=test-custom-vpc --no-assign-ip

如果您想为 Postgres 创建 Cloud SQL 实例,请使用以下命令:

gcloud --project=my-project beta sql instances create vpc-sql-1 --database-version=POSTGRES_12 --cpu=2 --memory=7680MB --network=test-custom-vpc --no-assign-ip

问题是您使用 Postgres 数据库客户端连接到 Cloud SQL for Mysql。要正确连接,请使用以下示例:

以Mysql为例:

mysql --host=192.168.0.3 --user=root --password

对于 Postgres 示例:

psql -h 192.168.0.3 -U postgres

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。