如何将 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 数据库。

参考:

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

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

创建 SQL 实例:

Google Cloud SQL 实例是托管在 Google 云中的 MySQL 数据库。

  1. 转到 Google Cloud Platform Console 中的 Cloud SQL Instances 页面( https://console.cloud.google.com/sql/instances), 然后单击 Create instance。

  2. 单击选择第一代,输入名称并选择实例的层,然后单击创建

  3. 实例完成初始化后,选择要打开它的实例。

  4. 访问控制>用户中,单击创建用户帐户并创建名为 root 的用户并指定密码(root_password)。这会创建 MySQL 用户’root’@’%’。

  5. 数据库中,单击新建数据库并使用数据库名称(DataBase_Name)创建数据库

MySQL Workbench:

MySQL Workbench 是数据库架构师,开发人员和 DBA 的统一可视化工具。MySQL Workbench 为服务器配置,用户管理,备份等提供数据建模,SQL 开发和综合管理工具。

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

现在,我们将了解如何使用 MySQL Workbench 连接到你的 Google Cloud SQL 实例数据库。

配置访问权限

  1. 转到 Google Cloud Platform Console 中的 Cloud SQL Instances 页面,然后选择该实例。

  2. 访问控制>“IP 地址”中,单击“请求 IPv4 地址”并将其复制(Instance_IPv4_address)。需要将你的 Google Cloud SQL 实例数据库与 MySQL Workbench 等管理工具相连接。

    注意: 实例处于非活动状态时,你将需要支付 IPv4 地址 @ $ 0.01,实例处于活动状态时每小时支付 0.1 美元

  3. Google 的“IP 地址”用于查找你的公共 IP 地址

  4. 访问控制>授权>授权网络中,单击添加网络并输入你的 IP 地址。

  5. 访问控制>用户中,使用用户名(userName),密码(密码)和允许选择任何主机选项创建用户。建议使用单独的用户帐户从 WorkBench 进行访问

  1. 在 MySQL Workbench 主视图中,单击新建连接

  2. 设置新连接窗口中,提供连接名称主机名用户名

  3. 单击测试连接。系统将提示你输入密码。

  4. MySQL 连接成功后,单击确定并单击已保存的连接以打开 SQL 编辑器

Google App Engine:

Google App Engine 是一个用于构建可扩展的 Web 应用程序和移动后端的平台。App Engine 将自动扩展你的应用程序。

请参阅 https://cloud.google.com/appengine

现在我们将看到如何在 App Engine 应用程序和 Cloud SQL 实例之间建立连接。

配置访问权限

  1. 转到 Google Cloud Platform Console 中的 Cloud SQL Instances 页面,然后选择该实例。

  2. 访问控制>授权>“授权的 App Engine”应用程序中,单击“添加应用程序 ID”并输入应用程序 ID。单击完成并保存。

  3. 在概述>属性中复制实例连接名称(Instance_Connection_Name)

  4. 在你的 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;
    }
}