【问题标题】:GCE cannot access private SQLGCE 无法访问私有 SQL
【发布时间】:2021-05-22 03:12:18
【问题描述】:

我尝试从 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 计算网络创建 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 位置 TIER PRIMARY_ADDRESS PRIVATE_ADDRESS 状态 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 计算 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 连接?


我不知道什么配置有问题

【问题讨论】:

    标签: google-cloud-platform gcloud google-cloud-sql vpc


    【解决方案1】:

    我复制了您的案例,所有配置都运行良好,但请注意,在 步骤 #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
    

    【讨论】:

    • 感谢您的回复。命令psql -h 192.168.0.3 -U postgres 不正确。我试过mysql --host=192.168.0.3 --user=root --password,但还是失败了
    • 抱歉我的更新令人困惑。之前即使我使用了 mySQL 或 postgressSQL 也一定会出错,但是现在,我云连接了 mysql。我不知道原因,但可能我可能会选择不同的 SQL。非常感谢
    猜你喜欢
    • 2020-11-27
    • 2018-12-16
    • 1970-01-01
    • 2014-11-21
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2022-07-21
    • 2020-07-13
    相关资源
    最近更新 更多