无需代理即可从同一 GCP 项目访问 GCP CloudSQL

GCP CloudSQL Access from same GCP Project without Proxy

我完全被我认为可能很简单的事情难住了。在我学习如何使用 Cloud SQL 时,我一直在搜索这个问题,但没有成功。 App Engine 上有很多示例,但关于将 GCP 虚拟机连接到 GCP 云的简单性几乎 none SQL。 Google 的说明似乎不完整。这是我拥有的:

在同一个 GCP 项目中,我创建了一个 Bitnami LAMP 虚拟机。在同一个项目中,我创建了一个具有单个数据库和两个表的 CloudSQL 实例。我的目的是尝试通过 VM 中的 PHP 脚本访问 CloudSQL。 (是的,我知道我可以在 VM 上设置一个 SQL 服务器,但我的目的是学习如何访问云 SQL)。请注意,所有内容都在同一个 GCP 项目中,因此据我所知,我不必使用 SQL 代理。

我也在项目中启用了 CloudSQL API。

<?php
$DB_NAME = "dwelling_winebot";
$DB_USER = "winebot_reader";
$DB_PASS = "winebot_reader";
$tableName = "wines";
$mysqli = new mysqli(null, $DB_USER, $DB_PASS, $DB_NAME,null, "/cloudsql/web-sites-123456:us-central1:winebot");

... More code below

我在 apache error_log 中得到的错误是:

[08-Oct-2018 05:00:24 America/Los_Angeles] PHP Warning:  mysqli::__constru
ct(): (HY000/2002): No such file or directory in /opt/bitnami/apache2/htdo
cs/winebot/serverside/inforunner.php on line 25

(顺便说一句,第 25 行是 $mysqli 行,php 文件名是 inforunner.php,上面有 php 代码)

值得注意的事实:

如有任何帮助,我们将不胜感激。

使用内部 IP 而不是不存在的套接字。

参考Connecting MySQL Client from Compute Engine