Amazon RDS for MySQL

加密网络流量

Looker 强烈建议加密 Looker 应用与数据库之间的网络流量。考虑启用安全的数据库访问文档页面上介绍的方案之一。

如果您有兴趣使用 SSL 加密,请参阅 MySQL RDS 文档

选项

出于性能方面的原因,通常将只读副本数据库(也称为读取副本)与 Looker 搭配使用。这会释放生产数据库,以执行其主要功能,而不会因任何查询而拖慢其运行速度。

本文档介绍了如何执行以下操作:

  • 修改现有副本数据库以使用 Looker
  • 创建新的读取副本数据库并将其配置为与 Looker 搭配使用

修改现有副本

用户和安全

<some_password_here> 更改为唯一的安全密码:

CREATE USER looker;
SET PASSWORD FOR looker = PASSWORD ('<some_password_here>');
GRANT SELECT ON database_name.* TO 'looker'@'%';

RDS 和临时表

默认情况下,RDS 读取副本会启用只读标志,以防止 Looker 向临时表写入数据。Looker 实际上从未更改过现有数据,但 MySQL 仍然需要写入权限才能使用临时表。这可以通过更改 RDS 中的标记来解决。参阅 RDS 常见问题解答

**问:我的读取副本是否只接受数据库读取操作?** 读取副本旨在处理读取流量。不过,在某些情况下,高级用户可能会希望针对读取副本完成数据定义语言 (DDL) SQL 语句。示例可能包括将数据库索引添加到用于业务报告的读取副本中,而无需将同一索引添加到相应的源数据库实例。如果要为指定读取副本启用读取以外的操作,需要为读取副本修改活跃 [DB 参数组](#aws_step_4),将 `read_only` 参数设置为 `0`。

如果您更改 DB 参数组,则需要重启读取副本才能使更改生效。

创建数据库并授予权限

创建临时数据库并授予 looker 用户在其中写入数据的权限。出于权限方面的考虑,MySQL 中的 CREATE TEMPORARY 语句需要与数据库关联。

CREATE SCHEMA looker_tmp;
GRANT
  SELECT,
  INDEX,
  INSERT,
  UPDATE,
  DELETE,
  CREATE,
  DROP,
  ALTER,
  CREATE TEMPORARY TABLES
ON looker_tmp.* TO 'looker'@'%';

创建新副本

请注意,AWS RDS 只能创建启用了备份保留的数据库实例的读取副本。

AWS 之前的步骤

第 1 步

mysql 添加到将作为主数据库实例的数据库:

mysql -h hostname.uid.region.rds.amazonaws.com -P 3306 -u root -p

第 2 步

创建一个名为 looker 的用户(将 <some_password_here> 替换为安全的唯一密码):

CREATE USER looker IDENTIFIED BY '<some_password_here>';

第 3 步

创建临时数据库并向其他数据库和表的 Looker 授予读取权限。Looker 通常不会写入 looker_tmp 数据库,但会使用它执行 CREATE TEMPORARY TABLE 命令。

CREATE SCHEMA looker_tmp;
GRANT
  SELECT,
  INDEX,
  INSERT,
  UPDATE,
  DELETE,
  CREATE,
  DROP,
  ALTER,
  CREATE TEMPORARY TABLES
ON looker_tmp.* TO 'looker'@'%';

GRANT
  SELECT,
  SHOW DATABASES
ON *.* TO 'looker'@'%';

第 4 步

刷新权限:

FLUSH PRIVILEGES;

AWS 步骤

第 1 步

登录并转到 AWS 信息中心。选择 Database(数据库)下的 RDS

第 2 步

在 RDS 信息中心内,选择要指定为主数据库的数据库实例。点击实例操作,然后选择创建读取副本

第 3 步

创建读取副本数据库实例弹出式窗口中,配置读取副本数据库,然后点击是,创建读取副本

第 4 步

在等待读取副本数据库创建完毕后,您可以设置数据库参数组,其中包含应用于读取副本数据库实例的引擎配置值。点击边栏中的 DB 参数组页面,然后点击创建数据库参数组按钮:

第 5 步

选择 DB 参数组系列DB 参数组名称,然后输入 DB 参数组说明。然后点击是,创建

第 6 步

点击包含读取副本数据库参数组的行上的放大镜图标,选择该行并点击修改参数

第 7 步

参数下的过滤条件字段中,搜索“read_only”。将参数值更改为 0。然后点击保存更改

第 8 步

读取副本创建完成后,从数据库实例列表中选择该实例,点击实例操作按钮,然后在实例操作中选择修改

第 9 步

修改数据库实例弹出式窗口中,将数据库实例参数组更改为新的读取副本参数组。然后,勾选 Apply Immediately(立即应用)复选框,点击 Continue(继续),接着点击 Modify DB Instance(修改数据库实例)。

第 10 步

使用 MySQL 客户端,以 looker 身份连接到读取副本数据库实例,并测试数据是否可访问。

功能支持

为了让 Looker 支持某些功能,您的数据库方言也必须支持这些功能。

在最新版 Looker 中,MySQL 支持以下 Looker 功能:

后续步骤

完成数据库配置后,您可以按照这些说明从 Looker 连接到数据库。