2013-10-14 113 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。

希望這會有所幫助。

相關問題