如何将 Google Cloud SQL 与应用和工具连接起来?

New*_*hua 2 google-app-engine mysql-workbench google-cloud-sql google-cloud-platform

如何以安全的方式将 Google Cloud SQL 与应用程序(如 Google App Engine)和工具(如 (mySQL workbench))连接起来?

New*_*hua 9

在本文档中,我们将了解如何创建 Google Cloud SQL 实例并将它们连接到您的 Google App Engine 应用程序和 MySQL Workbench 管理工具中。

谷歌云 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 ( https://console.cloud.google.com/sql/instances ) 中的 Cloud SQL 实例页面,然后单击创建实例。
  2. 单击选择第一代,输入名称并为实例选择层,然后单击创建。

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

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

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

MySQL 工作台:

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. 谷歌“IP地址”以查找您的公共IP地址

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

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

连接

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

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

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

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

谷歌应用引擎:

Google App Engine 是一个用于构建可扩展的网络应用程序和移动后端的平台。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

代码示例:

Google App Engine 的示例 - 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;
    }
}
Run Code Online (Sandbox Code Playgroud)