我完全被我认为可能很容易的事情难住了。一直在寻找这个,没有运气,因为我学习如何使用云SQL。应用引擎上有很多示例,但几乎没有一个示例涉及将 GCP 虚拟机连接到 GCP Cloud SQL 的简单性。谷歌的说明似乎并不完整。这是我所拥有的:
在同一个GCP项目中,我创建了一个Bitnami LAMP VM。在同一项目中,我创建了一个具有单个数据库和两个表的 CloudSQL 实例。我的目的是尝试通过 PHP 脚本从 VM 访问 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",我可以看到数据库实例- 我创建了一个名为winebot_reader的用户...说到这里,我还尝试使用"密码作为某些文档的"root" 建议。没有运气。
- cloudsql 实例名称实际上是控制台中正确的项目名称、区域和数据库。
- 我似乎没有像某些文档建议的那样具有套接字路径的本地/cloudsql文件夹?
- 根据控制台,CloudSQL API 已打开
- 在 mysqli 调用(第一个参数(的位置字段中,我已经尝试过,null,本地主机,127.0.0.1。结果都是一样的。
任何帮助将不胜感激。
使用内部 IP 而不是不存在的套接字。
请参阅从计算引擎连接 MySQL 客户端以获取参考。