来自同一 GCP 项目的 GCP CloudSQL 访问,无需代理



我完全被我认为可能很容易的事情难住了。一直在寻找这个,没有运气,因为我学习如何使用云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 客户端以获取参考。

相关内容

  • 没有找到相关文章

最新更新