2013-10-14 115 views
0

花了几个小时后,这是我能够从GAE外部访问Cloud SQL的唯一真实文档:https://developers.google.com/cloud-sql/docs/external从Google Compute Engine访问Google Cloud SQL实例?

问题是,这是针对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' => '', 
) 

这是接近我,但我会得到一个一般性错误“无法通过socket连接到本地MySQL服务器”。

回答

0

Cloud SQL团队正致力于改进Compute Engine的连接性。如果您将此问题发送到[email protected],他们将能够跟进。

+0

嘿@JoeFaith谢谢。期待它。我经常在您的Cloud团队中与人员进行电话会议等,总是非常有帮助。如果我得到任何形式的答案或某种解决方法,我一定会在这里发布答案,如果能够的话。 编辑:没有太多的运气与该地址, – Antiga

+0

编辑:与该地址没有太大的运气, “我们写信告诉你,你试图联系的组(谷歌云 - sql的讨论)可能不存在,或者您可能没有权限将消息发布到该组。“ – Antiga

+0

我认为您需要先加入该组,然后才能发布。访问https://groups.google.com/forum/#!forum/google-cloud-sql-discuss – IanGSY

0

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

例如:Java的App Engine应用程序有呼吁DB,然后格式选择查询并返回结果为JSON文件“装getEmployees”方法调用。您的PHP应用程序然后会调用此方法并使用JSON ...

+2

哇,这是一个复杂的工作,各地 – simonmorley

+0

这完全是过于复杂和不必要的。他们所要做的就是将一个新的非root用户添加到他们的GCSQL实例,并使用他们的GCSQL IP +连接用户而不是localhost + root – Xarus

1

虽然这是一个较老的问题,但我只是认为我应该分享一下我发现的相关内容。

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

要开始

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

希望这会有所帮助。

相关问题