【问题标题】:How to connect Google Cloud SQL with Apps and Tools?如何将 Google Cloud SQL 与应用程序和工具连接起来?
【发布时间】:2017-03-06 12:45:39
【问题描述】:

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

【问题讨论】:

    标签: google-app-engine mysql-workbench google-cloud-platform google-cloud-sql


    【解决方案1】:

    在本文档中,我们将了解如何创建 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 中的 Cloud SQL 实例页面 控制台 (https://console.cloud.google.com/sql/instances) 并单击 创建实例。
    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 中的 Cloud SQL 实例页面 控制台并选择实例。

    2. 在访问控制 > IP 地址中,单击请求 IPv4 地址并复制 它(Instance_IPv4_address)。需要连接您的 Google Cloud 带有 MySQL Workbench 等管理工具的 SQL 实例数据库。

      注意:您需要为 IPv4 地址付费 @ 实例不活动每小时 0.01 美元,实例活动每小时 0.1 美元

    3. Google 'ip address' 查找您的公共 IP 地址

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

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

    正在连接

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

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

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

    4. 一旦 MySQL 连接成功,点击 OK 并点击 保存的打开 SQL 编辑器的连接

    谷歌应用引擎:

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

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

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

    配置访问权限

    1. 转到 Google Cloud Platform 中的 Cloud SQL 实例页面 控制台并选择实例。

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

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

    4. 在您的 Google Web 应用程序项目中, 战争/WEB-INF/appengine-web.xml 添加, 真的

    代码示例:

    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;
        }
    }
    

    【讨论】:

    • 相当全面的答案!我会注意到,定期重新连接将取决于 1) MySQL 实例是否具有静态 IP 地址(我会说只是购买该静态 IP 选项)和 2) 如果 具有静态 IP 地址。如果您的 IP 每天都在变化,您可能需要使用 CIDR 表示法指定足够宽的 IP 范围——您可以谷歌“CIDR 到 IP 地址”以找到正确 CIDR 表示法的在线计算器。最后,我会注意到您可以打开所有访问权限并使用 SSL 以仅允许受信任的客户端连接(来自任何 IP)。
    【解决方案2】:

    我想补充一下牛顿所说的:

    实例连接名称不仅仅是您的“project_id:instance_id”。请转到 Google Cloud SQL 实例概述页面并复制“实例连接名称”字段中的值。 “实例连接名称”通常包含区域名称或其他值,因此请小心替换它。

    【讨论】:

      猜你喜欢
      • 2019-02-26
      • 2015-09-21
      • 1970-01-01
      • 1970-01-01
      • 2021-05-03
      • 1970-01-01
      • 1970-01-01
      • 2020-03-30
      • 1970-01-01
      相关资源
      最近更新 更多