【发布时间】:2016-04-06 19:00:23
【问题描述】:
即使我将 GCE 实例的公共 IP(外部 IP)添加为授权网络,我也无法从 GCE 连接 Google Cloud SQL。当我将“0.0.0.0”添加到授权网络时它可以工作。显然我不想那样做。授权的网络设置可能是原因。但我找不到它。有谁知道这件事。
我使用的是 Google Cloud SQL 版本 2 测试版。我正在尝试从 GCP 云控制台连接。虽然这可能不是必需的,但我将外部 IP 设置从临时更改为静态,但它不起作用。
mysql -u root -p -h xxxx <--- I can login normally if I add "0.0.0.0" into authorized network.
我已经仔细检查过同样的问题..
1. Ensure your Cloud SQL instance has an IPv4 address.
2. Find out the public IP address of your GCE instance and add it as an authorized network on your Cloud SQL instance.
3. Add a MySQL username and password for your instance with remote access.
4. When connecting from GCE use you standard MySQL connection system (e.g. mysqli_connect) with the username and password you just set up, connecting to the IPv4 address of your Cloud SQL instance.
编辑 1
我注意到了这个描述。
注意:使用 Cloud SQL 代理从 Compute Engine 连接到 Cloud SQL 目前仅适用于 Cloud SQL 第二代实例。
https://cloud.google.com/sql/docs/compute-engine-access
这是否意味着我必须使用代理..?
编辑 2
$ mysql -u root -p -h (Cloud SQL Instance's IP)
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '(Cloud SQL Instance's IP)' (110)
编辑 3
这是否意味着我必须使用代理..?
根据 Vadim 所说的官方文档,Cloud SQL Proxy 似乎是可选的,但在安全性、灵活性和价格方面听起来更好。 (静态IP会收费。不过代理设置对我来说可能很复杂..)
https://cloud.google.com/sql/docs/compute-engine-access
如果您要连接到 Cloud SQL 第一代实例,则必须使用其 IP 地址进行连接。但是,如果您使用的是 Cloud SQL 第二代实例,您也可以使用 Cloud SQL Proxy 或 Cloud SQL Proxy Docker 映像。
编辑 4
我找到了原因...我很愚蠢...我尝试从 Google Cloud Shell 进行连接,但那不是我的 gce 实例。当我尝试从我的 gce 实例连接时,它可以工作。
【问题讨论】:
标签: google-compute-engine google-cloud-platform google-cloud-sql