【发布时间】:2019-03-13 06:02:35
【问题描述】:
我完全被我认为可能很简单的事情所困扰。在学习如何使用 Cloud SQL 时,我一直在寻找这几天,但没有运气。应用引擎上有很多示例,但几乎没有关于将 GCP 虚拟机连接到 GCP Cloud SQL 的简单性。 Google 的说明似乎并不完整。这是我所拥有的:
在同一个 GCP 项目中,我创建了一个 Bitnami LAMP 虚拟机。在同一个项目中,我创建了一个带有单个数据库和两个表的 CloudSQL 实例。我的意图是尝试通过虚拟机中的 PHP 脚本访问 CloudSQL。 (是的,我知道我可以在 VM 上设置 SQL 服务器,但我的目的是学习如何访问 CloudSQL)。注意,一切都在同一个 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 实例
,我可以看到数据库实例 描述葡萄酒机器人”- 我已经创建了一个名为 winebot_reader 的用户...说这个我还尝试了 'root' 使用 "" 密码作为一些文档 建议。不走运。
- cloudsql 实例名称实际上是来自控制台的正确项目名称、区域和数据库。
- 我似乎没有像某些文档建议的那样有一个带有套接字路径的本地 /cloudsql 文件夹?
- 根据控制台,CloudSQL API 已开启
- 在mysqli调用的location字段(第一个参数)我试过了,null,localhost,127.0.0.1。所有的结果都是一样的。
任何帮助将不胜感激。
【问题讨论】:
标签: php google-cloud-platform google-cloud-sql