无需代理即可从同一 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 代码)
值得注意的事实:
- 如果我 运行 "gcloud sql instances
我可以看到数据库实例
描述 winebot"
- 我创建了一个名为 winebot_reader 的用户...说这个我也尝试 'root' 使用“”密码作为一些文档
建议。运气不好。
- 云sql 实例名称实际上是来自控制台的正确项目名称、区域和数据库。
- 我似乎没有本地 /cloudsql 文件夹和某些文档建议的套接字路径?
- 根据控制台,云SQL API 已开启
- 在 mysqli 调用的位置字段中(第一个参数)我已经尝试过,null,localhost,127.0.0.1。结果都一样。
如有任何帮助,我们将不胜感激。
使用内部 IP 而不是不存在的套接字。
我完全被我认为可能很简单的事情难住了。在我学习如何使用 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 代码)
值得注意的事实:
- 如果我 运行 "gcloud sql instances
我可以看到数据库实例 描述 winebot"- 我创建了一个名为 winebot_reader 的用户...说这个我也尝试 'root' 使用“”密码作为一些文档 建议。运气不好。
- 云sql 实例名称实际上是来自控制台的正确项目名称、区域和数据库。
- 我似乎没有本地 /cloudsql 文件夹和某些文档建议的套接字路径?
- 根据控制台,云SQL API 已开启
- 在 mysqli 调用的位置字段中(第一个参数)我已经尝试过,null,localhost,127.0.0.1。结果都一样。
如有任何帮助,我们将不胜感激。
使用内部 IP 而不是不存在的套接字。