GCE 无法访问私有 SQL

GCE cannot access private SQL

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

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

但在 GCE 中,ping 到 SQL 实例,sql 连接也不起作用。

  1. 创建 VPC

gcloud compute networks create test-custom-vpc --subnet-mode=custom --bgp-routing-mode=global --mtu=1460

  1. 创建子网

gcloud compute networks subnets create vpc-sb-1 --network=test-custom-vpc --range=10.100.0.0/16 --region=asia-northeast1

  1. 为私人服务连接创建IP范围

gcloud compute addresses create vpc-peering-range --global --purpose=VPC_PEERING
--addresses=192.168.0.0 --prefix-length=16 --description=description --network=test-custom-vpc

  1. 为 SQL
  2. 创建 VPC 对等

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

  1. 在 VPC
  2. 中创建 mySQL

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

  1. 在VPC中创建GCE实例

gcloud compute instances create vm-in-sb-1 --subnet vpc-sb-1 --zone asia-northeast1-b

  1. 创建防火墙规则,目前允许所有 IP/protocol

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


然后,我将使用 ssh 访问 VM 并检查 VM 与 SQL

之间的连接

gcloud sql instances list NAME 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 RUNNABLE

-> SQL 私有 IP 是 192.168.0.3

  1. ssh 登录

gcloud beta compute 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”上的服务器 运行 是否接受 TCP/IP 端口 5432 上的连接?


我不知道什么配置有问题

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

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

如果您想为 Postgres 创建云 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 数据库客户端连接到云 SQL for Mysql。要正确连接,请使用以下示例:

对于 Mysql 示例:

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

对于 Postgres 示例:

psql -h 192.168.0.3 -U postgres