0

如何以安全的方式將Google Cloud SQL與應用(如Google App Engine)和工具(如mySQL workbench)連接起來?如何將Google Cloud SQL與應用和工具連接?

+1

安全可靠的Google雲MySQL具有高性能,允許用戶存儲他們的信息,在Google命令行界面中開發應用程序,保護對Google平臺上分配的資源的訪問,提供最終可靠性等等。此外,使用Google Cloud SQL,您可以輕鬆控制MySQL數據庫管理,並創建自動備份和恢復,您可以使用[dbForge Studio for MySQL](https://www.devart .COM/dbforge/MySQL的/工作室/數據庫connections.html)。 – Devart

回答

2

在本文中,我們將看到如何創建Google Cloud SQL實例並將它們連接到您的Google App Engine應用程序和MySQL Workbench管理工具中。

谷歌雲SQL:

谷歌雲SQL是一個完全管理數據庫服務,可以很容易地建立,維護,管理和管理雲中的關係MySQL數據庫。

Google Cloud SQL提供了一個關係數據庫,您可以將其用於App Engine應用程序。 Cloud SQL是位於Google雲中的MySQL數據庫。

參考:

https://cloud.google.com/sql/

https://cloud.google.com/sql/docs/

創建SQL實例:

一個谷歌Cloud SQL執行是在谷歌的雲託管的MySQL數據庫。

  1. 轉到了谷歌雲平臺 控制檯(https://console.cloud.google.com/sql/instances)雲SQL實例頁面,點擊 創建實例。
  2. 單擊選擇第一代,輸入名稱併爲實例選擇一個層 ,然後單擊創建。

  3. 實例初始化完成後,選擇實例 打開它。

  4. 在訪問控制>用戶中,單擊創建用戶帳戶並使用名稱root創建一個 用戶並指定密碼(root_password)。這個 創建MySQL用戶'root'@'%'。

  5. 在數據庫中,單擊新建數據庫,並用 數據庫名稱創建一個數據庫(數據庫名稱)

MySQL工作臺:

的MySQL Workbench是數據庫架構師統一的可視化工具,開發人員和DBA。 MySQL Workbench爲服務器配置,用戶管理,備份等提供數據建模,SQL開發和綜合管理工具。

參考http://www.mysql.com/products/workbench/

現在我們將看到如何連接到谷歌雲SQL實例數據庫MySQL的工作臺。

配置訪問

  1. 轉到了谷歌雲平臺 控制檯的雲SQL實例頁,並選擇實例。

  2. 在訪問控制> IP地址中,單擊請求IPv4地址並複製 it(Instance_IPv4_address)。需要將您的Google Cloud SQL實例數據庫與管理工具(如MySQL Workbench)連接起來。

    注:您將收取的IPv4地址@ $ 0.01每個小時的情況下是無效的和每個小時的情況下是有效$ 0.1

  3. 谷歌「IP地址」來找到你的公網IP地址

  4. 在訪問控制>授權>授權網絡中,單擊添加 網絡並輸入您的IP地址。

  5. 在訪問控制>用戶中,使用用戶名(userName), 密碼(密碼)和選項'允許選擇任何主機'創建用戶。據 建議從工作臺

使用一個單獨的用戶帳戶訪問連接

  1. 在MySQL工作臺主視圖,單擊新建連接。

  2. 在設置新的連接窗口中,提供一個連接名稱, 主機名和用戶名

  3. 單擊測試連接。系統會提示您輸入密碼。

  4. 一旦MySQL連接是由成功後,點擊確定,就 點擊保存的連接打開SQL編輯器

谷歌應用程序引擎:

谷歌App Engine是一個平臺構建可擴展的Web應用程序和移動後端。 App Engine會自動擴展您的應用程序。

參考https://cloud.google.com/appengine

現在,我們將看到如何建立一個App Engine應用程序和雲SQL實例之間的連接。

配置訪問

  1. 轉到了谷歌雲平臺 控制檯的雲SQL實例頁,並選擇實例。

  2. 在訪問控制>授權>授權應用引擎 應用程序中,單擊添加應用程序ID並輸入應用程序ID。 單擊完成並保存。

  3. 在概覽>屬性複製 '實例連接名稱' (Instance_Connection_Name)

  4. 在你的谷歌Web應用程序項目, 戰/ WEB-INF/AppEngine上-web.xml中添加, 真正

代碼示例:

谷歌應用程序引擎的的exaple - Java標準環境

public static Connection connect() throws ClassNotFoundException, SQLException { 
    String url = null; 

    { 
     if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Production) { 

      // Connecting from App Engine. 
      Class.forName(Messages.getString("com.mysql.jdbc.GoogleDriver")); 
      url = Messages.getString("jdbc:google:mysql://{{Instance_Connection_Name}}/{{DataBase_Name}}?user=root&password={{root_password}}"); 
     } else { 
      // Connecting from an external network or localhost 
      Class.forName(Messages.getString("com.mysql.jdbc.Driver")); 
      url = Messages.getString("jdbc:mysql://{{Instance_IPv4_address}}:3306/{{DataBase_Name}}?user={{userName}}&password={{password}}"); 
     } 

     Connection conn = DriverManager.getConnection(url); 

     return conn; 
    } 
} 
+0

相當全面的答案!我會注意到,經常重新連接將取決於1)如果MySQL實例有一個靜態IP地址(我會說只是購買這個靜態IP選項)和2)如果*你*有一個靜態IP地址。如果您的IP每天都在變化,您可能需要使用CIDR表示法指定足夠寬的IP範圍 - 您可以通過谷歌「CIDR到IP地址」找到正確的CIDR表示法的在線計算器。最後,我會注意到你可以打開所有的訪問權限並使用SSL,只允許可信任的客戶端連接(來自任何IP)。 – Robert

1

我想補充一下牛頓說:

實例連接名稱不只是你的「PROJECT_ID:INSTANCE_ID」。請轉到Google Cloud SQL實例概述頁面,並複製「實例連接名稱」字段中的值。通常「實例連接名稱」包含區域名稱或其他值,因此請小心將其替換。