0

花了几个小时后,这是我能找到的用于从 GAE 外部访问 Cloud SQL 的唯一真实文档:https ://developers.google.com/cloud-sql/docs/external

问题是,这是针对 Java 应用程序(通过 JDBC)。

我需要从 PHP、Dart 或 NodeJS 应用程序中访问我的 Cloud SQL DB。我认为通过授予我的 GCE 实例连接到 Cloud SQL 的权限,这将很容易。但是没有任何套接字字符串的排列(使用 mysql 驱动程序)似乎是有效的。

为了论证,假设我正在尝试连接 PHP 应用程序。我的 mysql 连接数组如下所示:

(
  'driver'    => 'mysql',
  'unix_socket'     => '/cloudsql/project-id:instance-id',
  'host'      => 'localhost',
  'database'  => 'dbname',
  'username'  => 'root',
  'password'  => '',
  'charset'   => 'utf8',
  'collation' => 'utf8_unicode_ci',
  'prefix'    => '',
)

这和我得到的一样接近,但我会得到一个通用的“无法通过套接字连接到本地 MySQL 服务器”错误。

4

3 回答 3

1

虽然这是一个较老的问题,但我只是想我应该分享我在这方面的发现。

首先,您尝试连接到 GCE 实例上的 MySQL 服务器,而不是远程 CloudSQL 实例。

开始

  1. 进入您的仪表板并为您的 CloudSQL 实例请求一个 IP。
  2. 转到 CloudSQL 访问控制并添加您的 GCE IP 地址。
  3. 通过 mysql-client 从 GCE 连接到 CloudSQL 并添加一个新的(非 root)用户
  4. 使用 CloudSQL IP 和新的非 root 用户从 GCE PHP 文件访问 CloudSQL。

希望这可以帮助。

于 2014-06-06T17:29:16.690 回答
0

Cloud SQL 团队正在努力改进 Compute Engine 的连接性。如果您将此问题发送到 google-cloud-sql-discuss@googlegroups.com,他们将能够跟进。

于 2013-10-14T20:21:30.543 回答
0

您可以间接连接 IE 创建一个基于 Java 的 App Engine 应用程序,为您提供数据库接口,并从您的 PHP 应用程序使用该接口?

例如:Java App Engine 应用程序有一个“getEmployees”方法调用,该方法调用数据库上的 Select 查询,然后将结果格式化并以 JSON 文件的形式返回。然后,您的 PHP 应用程序将调用此方法并使用 JSON...

于 2013-11-08T19:17:02.677 回答