【问题标题】:Unable to Connect to Google Cloud MySQL using Google App Engine无法使用 Google App Engine 连接到 Google Cloud MySQL
【发布时间】:2017-08-29 20:04:10
【问题描述】:
  1. 我正在尝试按照Getting Started using Cloud MySQL and PHP 中的步骤操作,但是我仍然收到下面的 SQL 错误。

  2. 到目前为止我已经完成的步骤,

    一个。在 Google Cloud MySQL 中创建数据库

    b.创建了用户和密码,

My Connection Settings

我有什么遗漏吗?

【问题讨论】:

  • 我很确定你的连接值是错误的
  • @Hackerman,是的,教程相同。我按照步骤操作,并将凭据更改为 settings.yml 如果我做错了,我可以将文件发送给您吗?
  • @Hackerman 从settings.yml查看我的连接页面

标签: php mysql google-app-engine


【解决方案1】:

确保在您的 Cloud SQL 实例上打开防火墙以允许您的 IP 地址访问它。出于测试目的,您可以通过以下方式为所有 IP 地址打开它:

  1. 导航到您的数据库实例
  2. 点击“编辑”
  3. 点击“授权网络”
  4. 点击“添加网络”
  5. 键入 0.0.0.0/0 以向所有网络开放您的数据库。

注意:您应该只将该设置用于初始测试,因为它会打开您的实例与来自任何 IP 地址的连接。一旦您确认这是问题所在,请删除该条目并仅为您要连接的 IP 地址创建一个条目。

【讨论】:

  • 当我为数据库创建实例时,我得到了一个 IP 地址。这是我应该在授权网络下添加的 IP 吗?
  • 我更新了我的措辞。我的意思是导航到 Google Cloud 控制台中的“Cloud SQL”,单击要编辑的数据库的名称,然后单击“编辑”图标。您将暂时向所有 IP 地址开放其防火墙。完成测试后,您将删除该条目,找到您要连接的主机的 IP 地址并添加其 IP 地址。这将导致您的数据库只允许该主机连接。 0.0.0.0/0 只能用于测试目的。
  • 查看我的连接设置让我知道我犯了什么错误。
【解决方案2】:

AppEngine 标准环境,您不需要 IP 即可连接到 第一代云 MySQL 实例。对于 PDO,您可以将其用作 DSN:

mysql:unix_socket=/cloudsql/<your-project-id>:<your-mysql-instance-name>;dbname=<database-name>

AppEngine 灵活环境开始,或者如果您使用 第二代云 MySQL,则需要安装 cloud_sql_proxy - 请参阅 https://cloud.google.com/appengine/docs/flexible/php/using-cloud-sql 和/或https://cloud.google.com/appengine/docs/standard/php/cloud-sql/

如果您真正想要的是使用 Google Cloud 的 Cloud SQL 在本地进行测试,您还需要相同的 cloud_sql_proxy

【讨论】:

  • 我正在使用 第二代云,并且我已经安装了 Cloud SQL 代理我缺少哪些步骤?
  • 查看我的连接设置让我知道是什么导致了错误。
猜你喜欢
  • 1970-01-01
  • 2015-12-18
  • 2019-11-27
  • 2019-02-25
  • 2018-08-15
  • 2017-08-28
  • 2016-09-12
  • 2016-03-08
  • 1970-01-01
相关资源
最近更新 更多