如何將 Google Cloud SQL 與應用程式(如 Google App Engine)和工具(如 mySQL workbench)相連線
在本文件中,我們將瞭解如何建立 Google Cloud SQL 例項並將其連線到你的 Google App Engine 應用程式和 MySQL Workbench 管理工具中。
Google Cloud SQL:
Google Cloud SQL 是一種完全託管的資料庫服務,可以輕鬆地在雲中設定,維護,管理和管理關係型 MySQL 資料庫。
Google Cloud SQL 提供了一個可與 App Engine 應用程式一起使用的關聯式資料庫。Cloud SQL 是一個存在於 Google 雲中的 MySQL 資料庫。
參考:
建立 SQL 例項:
Google Cloud SQL 例項是託管在 Google 雲中的 MySQL 資料庫。
-
轉到 Google Cloud Platform Console 中的 Cloud SQL Instances 頁面( https://console.cloud.google.com/sql/instances), 然後單擊 Create instance。
-
單擊選擇第一代,輸入名稱並選擇例項的層,然後單擊建立。
-
例項完成初始化後,選擇要開啟它的例項。
-
在訪問控制>使用者中,單擊建立使用者帳戶並建立名為 root 的使用者並指定密碼(root_password)。這會建立 MySQL 使用者’root’@’%’。
-
在資料庫中,單擊新建資料庫並使用資料庫名稱(DataBase_Name)建立資料庫
MySQL Workbench:
MySQL Workbench 是資料庫架構師,開發人員和 DBA 的統一視覺化工具。MySQL Workbench 為伺服器配置,使用者管理,備份等提供資料建模,SQL 開發和綜合管理工具。
參考 http://www.mysql.com/products/workbench/
現在,我們將瞭解如何使用 MySQL Workbench 連線到你的 Google Cloud SQL 例項資料庫。
配置訪問許可權
-
轉到 Google Cloud Platform Console 中的 Cloud SQL Instances 頁面,然後選擇該例項。
-
在訪問控制>“IP 地址”中,單擊“請求 IPv4 地址”並將其複製(Instance_IPv4_address)。需要將你的 Google Cloud SQL 例項資料庫與 MySQL Workbench 等管理工具相連線。
注意: 例項處於非活動狀態時,你將需要支付 IPv4 地址 @ $ 0.01,例項處於活動狀態時每小時支付 0.1 美元
-
Google 的“IP 地址”用於查詢你的公共 IP 地址
-
在訪問控制>授權>授權網路中,單擊新增網路並輸入你的 IP 地址。
-
在訪問控制>使用者中,使用使用者名稱(userName),密碼(密碼)和允許選擇任何主機選項建立使用者。建議使用單獨的使用者帳戶從 WorkBench 進行訪問
連
-
在 MySQL Workbench 主檢視中,單擊新建連線。
-
在設定新連線視窗中,提供連線名稱,主機名和使用者名稱
-
單擊測試連線。系統將提示你輸入密碼。
-
MySQL 連線成功後,單擊確定並單擊已儲存的連線以開啟 SQL 編輯器
Google App Engine:
Google App Engine 是一個用於構建可擴充套件的 Web 應用程式和移動後端的平臺。App Engine 將自動擴充套件你的應用程式。
請參閱 https://cloud.google.com/appengine
現在我們將看到如何在 App Engine 應用程式和 Cloud SQL 例項之間建立連線。
配置訪問許可權
-
轉到 Google Cloud Platform Console 中的 Cloud SQL Instances 頁面,然後選擇該例項。
-
在訪問控制>授權>“授權的 App Engine”應用程式中,單擊“新增應用程式 ID”並輸入應用程式 ID。單擊完成並儲存。
-
在概述>屬性中複製例項連線名稱(Instance_Connection_Name)
-
在你的 Google Web 應用專案中,war / WEB-INF / appengine-web.xml 新增,true </ use-google-connector-j>
程式碼示例:
谷歌應用引擎的一個 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;
}
}