Amazon Relational Database Service
用户指南 (API 版本 2014-10-31)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

Amazon RDS 上的 MariaDB

Amazon RDS 支持运行若干版本 MariaDB 的数据库实例。您可以使用以下主版本:

  • MariaDB 10.2

  • MariaDB 10.1

  • MariaDB 10.0

有关次要版本支持的更多信息,请参阅 Amazon RDS 版本上的 MariaDB

首先使用 Amazon RDS 管理工具或界面创建 Amazon RDS MariaDB 数据库实例。然后可以使用 Amazon RDS 工具为数据库实例执行管理操作,如重新配置或调整数据库实例大小、向数据库实例连接授权、创建备份或快照及从备份或快照还原、创建多可用区二级条目、创建只读副本以及监控数据库实例的性能。您可以使用标准 MariaDB 实用程序和应用程序存储和访问数据库实例中的数据。

MariaDB 在所有 AWS 区域中都可用。有关 AWS 区域的更多信息,请参阅区域和可用区

您可以使用 Amazon RDS for MariaDB 数据库来构建符合 HIPAA 标准的应用程序。您可以在已实施的与 AWS 签订的商业伙伴协议 (BAA) 下存储与医疗保健相关的信息,包括受保护医疗信息 (PHI)。有关更多信息,请参阅 HIPAA 合规性。AWS 范围内服务已由第三方审核员完全评估,由此获得了证书、合规性鉴证或操作授权书 (ATO)。有关更多信息,请参阅 AWS 按合规性计划提供的范围内服务

在创建您的第一个数据库实例之前,您应完成本指南的设置部分中的步骤。有关更多信息,请参阅 Amazon RDS 设置

Amazon RDS 上 MariaDB 的常见管理任务

下面是您对运行 MariaDB 的 Amazon RDS 数据库实例执行的常见管理任务,以及有关每个任务的相关文档的链接。

任务区域 相关文档

实例类、存储和 PIOPS

如果您出于生产目的而创建数据库实例,则应该了解 Amazon RDS 中的实例类、存储类型和配置的 IOPS 的工作原理。

数据库实例类

Amazon RDS 存储类型

多可用区部署

使用多可用区部署和只读副本为数据库实例提供高可用性,实现不同可用区中的同步备用复制、自动故障转移和容错功能。

高可用性 (多可用区)

Amazon Virtual Private Cloud (VPC)

如果您的 AWS 账户具有默认 VPC,则自动在默认 VPC 中创建数据库实例。如果您的账户没有默认 VPC,并且您希望数据库实例位于 VPC 中,则必须在创建数据库实例之前创建 VPC 和子网组。

确定您使用的是 EC2-VPC 还是 EC2-Classic 平台

在 VPC 中使用 Amazon RDS 数据库实例

安全组

默认情况下,数据库实例在创建时带有一个防火墙,这个防火墙会阻止对实例进行访问。因此,您必须使用正确的 IP 地址和网络配置创建安全组来访问数据库实例。创建的安全组取决于您的数据库实例所在的 Amazon EC2 平台以及您是否从 Amazon EC2 实例访问该数据库实例。

一般而言,如果数据库实例位于 EC2-Classic 平台上,则需要创建数据库安全组;如果数据库实例位于 EC2-VPC 平台上,则需要创建 VPC 安全组。

确定您使用的是 EC2-VPC 还是 EC2-Classic 平台

Amazon RDS 个安全组

参数组

如果数据库实例需要特定数据库参数,则应在创建数据库实例前创建参数组。

使用数据库参数组

导入和导出数据

建立用于导入或导出数据的过程。

将数据导入到 MariaDB 数据库实例

复制

您可以通过创建只读副本,从主 MariaDB 数据库实例卸载读取流量。

使用 MariaDB、MySQL 和 PostgreSQL 数据库实例的只读副本

连接到数据库实例

使用标准 SQL 客户端应用程序连接到数据库实例。

连接到运行 MariaDB 数据库引擎的数据库实例

备份与恢复

在创建数据库实例时,可以将它配置为使用自动备份。您还可以使用完整备份文件 (.bak 文件) 来手动备份和还原数据库。

使用备份

监控

使用 Amazon CloudWatch RDS 指标、事件和增强监测功能来监控您的 RDS MySQL 数据库实例。查看您的 RDS MySQL 数据库实例的日志文件。

查看数据库实例指标

查看 Amazon RDS 事件

日志文件

您可以访问 MariaDB 数据库实例的日志文件。

Amazon RDS 数据库日志文件

MariaDB 数据库日志文件

此外,还有使用运行 MariaDB 的数据库实例的高级管理任务。有关更多信息,请参阅以下文档:

Amazon RDS 版本上的 MariaDB

MariaDB 版本号的组织方式为版本 X.Y.Z。在 Amazon RDS 术语中,X.Y 表示主版本,Z 是次要版本号。对于 Amazon RDS 实现,如果主版本号更改,则将版本更改视为重大更改;例如,从版本 10.0 更改为 10.1。仅当次要版本号更改 (例如,从版本 10.0.17 更改为 10.0.24) 时,才将版本更改视为小更改。

Amazon RDS 目前支持以下版本的 MariaDB:

主版本 次要版本

MariaDB 10.2

  • 10.2.15 (在所有 AWS 区域中支持)

  • 10.2.12 (在所有 AWS 区域中支持)

  • 10.2.11 (在所有 AWS 区域中支持)

MariaDB 10.1

  • 10.1.34 (在所有 AWS 区域中支持)

  • 10.1.31 (在所有 AWS 区域中支持)

  • 10.1.26 (在所有 AWS 区域中支持)

  • 10.1.23 (在所有 AWS 区域中支持)

  • 10.1.19 (在所有 AWS 区域中支持)

  • 10.1.14 (在 us-east-2 以外的所有 AWS 区域中支持)

MariaDB 10.0

  • 10.0.35 (在所有 AWS 区域中支持)

  • 10.0.34 (在所有 AWS 区域中支持)

  • 10.0.32 (在所有 AWS 区域中支持)

  • 10.0.31 (在所有 AWS 区域中支持)

  • 10.0.28 (在所有 AWS 区域中支持)

  • 10.0.24 (在所有 AWS 区域中支持)

  • 10.0.17 (在 us-east-2、ca-central-1 和 eu-west-2 以外的所有 AWS 区域中支持)

有关 MariaDB 的 Amazon RDS 弃用策略的信息,请参阅 Amazon RDS 常见问题

Amazon RDS 的版本和功能支持

Amazon RDS 上的 MariaDB 10.2 支持

Amazon RDS 支持 MariaDB 10.2 的以下版本:

  • 10.2.15 (在所有 AWS 区域中支持)

  • 10.2.12 (在所有 AWS 区域中支持)

  • 10.2.11 (在所有 AWS 区域中支持)

对于运行 MariaDB 版本 10.2 或更高版本的数据库实例,Amazon RDS 支持以下新功能:

  • ALTER USER

  • 公用表表达式

  • 压缩事件以减少二进制日志大小

  • CREATE USER - 限制资源使用和 TLS/SSL 的新选项

  • EXECUTE IMMEDIATE

  • 闪回

  • InnoDB - 现在替代 XtraDB 作为默认存储引擎

  • InnoDB - 动态设置缓冲池大小

  • JSON 函数

  • 开窗函数

  • WITH

有关所有 MariaDB 10.2 功能的列表及其文档,请参阅 MariaDB 网站上的 MariaDB 10.2 中的更改和改进发布说明 - MariaDB 10.2 系列

有关不支持功能的列表,请参阅 不支持的功能

Amazon RDS 上的 MariaDB 10.1 支持

Amazon RDS 支持 MariaDB 10.1 的以下版本:

  • 10.1.34 (在所有 AWS 区域中支持)

  • 10.1.31 (在所有 AWS 区域中支持)

  • 10.1.26 (在所有 AWS 区域中支持)

  • 10.1.23 (在所有 AWS 区域中支持)

  • 10.1.19 (在所有 AWS 区域中支持)

  • 10.1.14 (在 us-east-2 以外的所有 AWS 区域中支持)

对于运行 MariaDB 版本 10.1 或更高版本的数据库实例,Amazon RDS 支持以下新功能:

  • 乐观有序的并行复制

  • 页面压缩

  • XtraDB 数据清理和碎片整理

有关所有 MariaDB 10.1 功能的列表及其文档,请参阅 MariaDB 网站上的 MariaDB 10.1 中的更改和改进发布说明 - MariaDB 10.1 系列

有关不支持功能的列表,请参阅 不支持的功能

Amazon RDS 上的 MariaDB 10.0 支持

Amazon RDS 支持 MariaDB 10.0 的以下版本:

  • 10.0.35 (在所有 AWS 区域中支持)

  • 10.0.34 (在所有 AWS 区域中支持)

  • 10.0.32 (在所有 AWS 区域中支持)

  • 10.0.31 (在所有 AWS 区域中支持)

  • 10.0.28 (在所有 AWS 区域中支持)

  • 10.0.24 (在所有 AWS 区域中支持)

  • 10.0.17 (在 us-east-2、ca-central-1 和 eu-west-2 以外的所有 AWS 区域中支持)

有关所有 MariaDB 10.0 功能的列表及其文档,请参阅 MariaDB 网站上的 MariaDB 10.0 中的更改和改进发布说明 - MariaDB 10.0 系列

有关不支持功能的列表,请参阅 不支持的功能

不支持的功能

Amazon RDS 上不支持以下 MariaDB 功能:

  • HandlerSocket

  • JSON 表类型

  • MariaDB ColumnStore

  • MariaDB Galera 集群

  • 多源复制

  • 密码验证插件、simple_password_checkcracklib_password_check

  • 复制筛选条件

  • 存储特定于引擎的对象属性,如引擎定义的新表/字段/索引属性中所述。

  • 表和表空间加密

为了产生托管服务体验,Amazon RDS 不允许通过 shell 访问数据库实例,而仅限访问某些需要高级特权的系统过程和表。Amazon RDS 支持使用任何标准 SQL 客户端应用程序 (如 Oracle SQL Developer) 访问数据库实例上的数据库。Amazon RDS 不允许主机直接通过使用 Telnet、安全外壳 (SSH) 或 Windows 远程桌面连接访问数据库实例。

Amazon RDS 上的 MariaDB 支持的存储引擎

虽然 MariaDB 支持功能不同的多种存储引擎,但并非所有引擎都为恢复和数据持久性进行了优化。InnoDB (适用于版本 10.2 及更高版本) 和 XtraDB (适用于版本 10.0 和 10.1) 是 Amazon RDS 上的 MariaDB 数据库实例的推荐且受支持的存储引擎。时间点还原和快照还原等 Amazon RDS 功能需要可恢复的存储引擎,并且只有 MariaDB 版本的推荐存储引擎支持这些功能。Amazon RDS 还支持 Aria,尽管在发生实例故障的情况下使用 Aria 对恢复可能会有负面影响。不过,如果您需要使用空间索引处理 MariaDB 10.1 或 10.0 上的地理数据,则应使用 Aria,因为 XtraDB 不支持空间索引。在 MariaDB 10.2 及更高版本上,InnoDB 存储引擎支持空间索引。

目前,适用于 MariaDB 的 Amazon RDS 不支持其他存储引擎。

Amazon RDS 上的 MariaDB 安全性

Amazon RDS MariaDB 数据库实例的安全性在三个级别上进行管理:

  • AWS Identity and Access Management 控制可以对数据库实例执行 Amazon RDS 管理操作的人员。使用 IAM 凭证连接到 AWS 时,您的 IAM 账户必须具有授予执行 Amazon RDS 管理操作所需的权限的 IAM 策略。有关更多信息,请参阅 Amazon RDS 的身份验证和访问控制

  • 创建数据库实例时,使用 VPC 安全组或数据库安全组可以控制哪些设备和 Amazon EC2 实例能够建立到数据库实例的终端节点和端口的连接。这些连接可使用安全套接字层 (SSL) 建立。此外,公司的防火墙规则也可以控制公司中运行的哪些设备可以建立到数据库实例的连接。

  • 建立到 MariaDB 数据库实例的连接之后,以与独立 MariaDB 实例相同的方式应用登录和权限的身份验证。CREATE USERRENAME USERGRANTREVOKESET PASSWORD 等命令的作用与它们在独立数据库中的作用相同,就像直接修改数据库架构表。

当您创建 Amazon RDS 数据库实例时,主用户有以下默认特权:

  • alter

  • alter routine

  • create

  • create routine

  • create temporary tables

  • create user

  • create view

  • delete

  • drop

  • event

  • execute

  • grant option

  • index

  • insert

  • lock tables

  • process

  • references

  • reload

    此权限仅限在 Amazon RDS MariaDB 数据库实例上使用。它不会授予对 FLUSH LOGS 或 FLUSH TABLES WITH READ LOCK 操作的访问权限。

  • replication client

  • replication slave

  • select

  • show databases

  • show view

  • trigger

  • update

有关这些权限的更多信息,请参阅 MariaDB 文档中的用户账户管理

注意

尽管您可以删除数据库实例上的主用户,但我们不建议这样做。要重新创建主用户,请使用 ModifyDBInstance API 或 modify-db-instance AWS 命令行工具,并用相应参数指定一个新的主用户密码。如果实例中不存在主用户,将使用指定的密码创建主用户。

要为每个数据库实例提供管理服务,需在创建数据库实例时创建 rdsadmin 用户。如果试图删掉、重命名、修改 rdsadmin 账户的密码,或者修改该账户的特权,会导致出错。

若要允许管理数据库实例,需限制标准的 killkill_query 命令。提供了 Amazon RDS 命令 mysql.rds_killmysql.rds_kill_querymysql.rds_kill_query_id 以便在 MariaDB 和 MySQL 中使用,因此您可以终止数据库实例上的用户会话或查询。

对 MariaDB 数据库实例使用 SSL

对于运行 MariaDB 数据库引擎的数据库实例,Amazon RDS 支持与之进行 SSL 连接。

在 Amazon RDS 预置数据库实例时,Amazon RDS 创建 SSL 证书,并将该证书安装在数据库实例上。这些证书由证书颁发机构签署。SSL 证书会将数据库实例终端节点作为 SSL 证书的公用名 (CN) 包含在内以防止欺诈攻击。

公有密钥存储于 https://s3.cn-north-1.amazonaws.com.cn/rds-downloads/rds-combined-ca-cn-bundle.pem

下列版本的 MariaDB 使用 yaSSL 进行安全连接:

  • MariaDB 版本 10.1.26 及更早版本

  • MariaDB 版本 10.0.32 及更早版本

下列版本的 MariaDB 使用 OpenSSL 进行安全连接:

  • MariaDB 版本 10.2.11 及更高版本

  • MariaDB 版本 10.1.31 及更高版本

  • MariaDB 版本 10.0.34 及更高版本

要使用默认的 mysql 客户端对连接加密,需用 --ssl-ca parameter 启动 mysql 客户端以便引用公共密钥,例如:

对于 MariaDB 10.2 及更高版本:

mysql -h myinstance.c9akciq32.rds-cn-north-1.amazonaws.com --ssl-ca=[full path]rds-cn-north-1-ca-certificate.pem --ssl-mode=VERIFY_IDENTITY

对于 MariaDB 10.1 及更早版本:

mysql -h myinstance.c9akciq32.rds-cn-north-1.amazonaws.com --ssl-ca=[full path]rds-cn-north-1-ca-certificate.pem --ssl-verify-server-cert

您可以要求特定用户账户的 SSL 连接。例如,可以根据您的 MariaDB 版本,使用以下语句之一来要求用户账户 encrypted_user 的 SSL 连接。

对于 MariaDB 10.2 及更高版本:

ALTER USER 'encrypted_user'@'%' REQUIRE SSL;

对于 MariaDB 10.1 及更早版本:

GRANT USAGE ON *.* TO 'encrypted_user'@'%' REQUIRE SSL;

有关与 MariaDB 的 SSL 连接的更多信息,请参阅 MariaDB 文档中的 SSL 概述

高速缓存预热

InnoDB (版本 10.2 及更高版本) 和 XtraDB (版本 10.0 和 10.1) 高速缓存预热可为您的 MariaDB 数据库实例提高性能,方法是在数据库实例关闭时保存缓冲池的当前状态,然后在数据库实例启动时从保存的信息重新加载缓冲池。此方法将不再需要缓冲池使用常规数据库进行“预热”,而是预加载具有已知常见查询的页的缓冲池。 有关 高速缓存预热的更多信息,请参阅 MariaDB 文档中的转储和还原缓冲池

要启用 高速缓存预热,请将数据库实例的参数组中的 innodb_buffer_pool_dump_at_shutdowninnodb_buffer_pool_restore_at_startup 参数设置为 1。更改参数组中的这些参数值将影响使用该参数组的所有 MariaDB 数据库实例。要为特定 MariaDB 数据库实例启用 高速缓存预热,您可能需要为这些实例创建新的参数组。有关参数组的信息,请参阅使用数据库参数组

高速缓存预热主要为使用标准存储的数据库实例提高性能。如果您使用 PIOPS 存储,则通常看不到显著的性能收益。

重要

如果您的 MariaDB 数据库实例未正常关闭 (例如,在故障转移期间),则缓冲池状态将不会保存到磁盘。在此情况下,MariaDB 将在重新启动数据库实例时加载任何可用的缓冲池文件。这不会造成任何损害,但还原后的缓冲池可能不会反映缓冲池在重新启动前的最新状态。要确保您拥有启动时可用于预热 高速缓存的缓冲池的最新状态,建议您定期“按需”转储缓冲池。您可以按需转储或加载缓冲池。

您可创建事件来定期自动转储缓冲池。例如,以下语句创建一个名为 periodic_buffer_pool_dump 的事件,该事件每小时转储一次缓冲池。

CREATE EVENT periodic_buffer_pool_dump ON SCHEDULE EVERY 1 HOUR DO CALL mysql.rds_innodb_buffer_pool_dump_now();

有关更多信息,请参阅 MariaDB 文档中的事件

按需转储和加载缓冲池

您可以使用以下存储过程按需保存和加载 高速缓存:

MariaDB 的数据库参数

默认情况下,MariaDB 数据库实例使用特定于 MariaDB 数据库的数据库参数组。该参数组包含 MySQL 数据库引擎的 Amazon RDS 数据库参数组中所含的部分而非全部参数。它还包含一些新的特定于 MariaDB 的参数。有关适用于 Amazon RDS MariaDB 数据库引擎的参数的更多信息,请参阅MariaDB 的参数

MariaDB 的常见数据库管理员任务

取消会话或查询、跳过复制错误、使用 InnoDB (版本 10.2 及更高版本) 和 XtraDB (版本 10.0 和 10.1) 表空间缩短崩溃恢复时间和管理全局状态历史记录是您在 MariaDB 数据库实例中可能要执行的常见数据库管理员任务。您可以和在 Amazon RDS MySQL 数据库实例中一样处理这些任务,如MySQL 数据库实例的数据库管理员常见任务中所述。其中崩溃恢复说明指的是 MySQL InnoDB 引擎,但它们也适用于运行 InnoDB 或 XtraDB 的 MariaDB 实例。

MariaDB 数据库实例的本地时区

默认情况下,RDS MariaDB 数据库实例的时区是协调世界时 (UTC)。您可以将数据库实例的时区设置为您的应用程序的本地时区。

要设置数据库实例的本地时区,请将数据库实例参数组中的 time_zone 参数设置为本节后面列出的受支持值之一。在设置参数组的 time_zone 参数时,所有使用该参数组的数据库实例和只读副本都会改用新的本地时区。有关如何设置参数组中的参数的信息,请参阅使用数据库参数组

设置本地时区之后,所有新数据库连接都会反映更改。如果在更改本地时区时打开了任何数据库连接,则到关闭连接再打开新连接之后才会看到本地时区更新。

您可以为数据库实例及其一个或多个只读副本设置不同的本地时区。为此,请对数据库实例和副本使用不同的参数组,并将每个参数组中的 time_zone 参数设置为不同的本地时区。

如果要跨区域复制,则复制主数据库实例和只读副本使用不同的参数组 (参数组对于某个区域是唯一的)。要对每个实例使用相同的本地时区,您必须在实例和只读副本的参数组中设置 time_zone 参数。

从数据库快照还原数据库实例时,本地时区设置为 UTC。还原完成之后,可以将时区更新为本地时区。如果将数据库实例还原到某个时间点,则还原的数据库实例的本地时区是来自还原的数据库实例的参数组的时区设置。

您可以将本地时区设置为以下值之一。

Africa/Cairo

Asia/Bangkok

Australia/Darwin

Africa/Casablanca

Asia/Beirut

Australia/Hobart

Africa/Harare

Asia/Calcutta

Australia/Perth

Africa/Monrovia

Asia/Damascus

Australia/Sydney

Africa/Nairobi

Asia/Dhaka

Brazil/East

Africa/Tripoli

Asia/Irkutsk

Canada/Newfoundland

Africa/Windhoek

Asia/Jerusalem

Canada/Saskatchewan

America/Araguaina

Asia/Kabul

Europe/Amsterdam

America/Asuncion

Asia/Karachi

Europe/Athens

America/Bogota

Asia/Kathmandu

Europe/Dublin

America/Caracas

Asia/Krasnoyarsk

Europe/Helsinki

America/Chihuahua

Asia/Magadan

Europe/Istanbul

America/Cuiaba

Asia/Muscat

Europe/Kaliningrad

America/Denver

Asia/Novosibirsk

Europe/Moscow

America/Fortaleza

Asia/Riyadh

Europe/Paris

America/Guatemala

Asia/Seoul

Europe/Prague

America/Halifax

Asia/Shanghai

Europe/Sarajevo

America/Manaus

Asia/Singapore

Pacific/Auckland

America/Matamoros

Asia/Taipei

Pacific/Fiji

America/Monterrey

Asia/Tehran

Pacific/Guam

America/Montevideo

Asia/Tokyo

Pacific/Honolulu

America/Phoenix

Asia/Ulaanbaatar

Pacific/Samoa

America/Santiago

Asia/Vladivostok

US/Alaska

America/Tijuana

Asia/Yakutsk

US/Central

Asia/Amman

Asia/Yerevan

US/Eastern

Asia/Ashgabat

Atlantic/Azores

US/East-Indiana

Asia/Baghdad

Australia/Adelaide

US/Pacific

Asia/Baku

Australia/Brisbane

UTC