Amazon RDS 上的 MariaDB - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Amazon RDS 上的 MariaDB

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

  • MariaDB 10.6

  • MariaDB 10.5

  • MariaDB 10.4

  • MariaDB 10.3

  • MariaDB 10.2

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

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

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

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

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

Amazon RDS 上 MariaDB 的常见管理任务

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

任务区域 相关文档

实例类、存储和 PIOPS

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

数据库实例类

Amazon RDS 存储类型

多可用区部署

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

多可用区部署,可实现高可用性

Amazon Virtual Private Cloud (VPC)

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

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

在 VPC 中使用数据库实例

安全组

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

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

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

使用安全组控制访问权限

参数组

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

使用参数组

导入和导出数据

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

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

复制

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

使用只读副本

连接到您的数据库实例

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

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

备份与还原

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

使用备份

监控

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

在 Amazon RDS 控制台中查看指标

查看 Amazon RDS 事件

日志文件

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

监控 Amazon RDS 日志文件

MariaDB 数据库日志文件

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

Amazon RDS 上的 MariaDB 版本

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

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

主要版本 次要版本

MariaDB 10.6

  • 10.6.7

  • 10.6.5

MariaDB 10.5

  • 10.5.15

  • 10.5.13

  • 10.5.12

  • 10.5.9

  • 10.5.8

MariaDB 10.4

  • 10.4.24

  • 10.4.22

  • 10.4.21

  • 10.4.18

  • 10.4.13

MariaDB 10.3

  • 10.3.34

  • 10.3.32

  • 10.3.31

  • 10.3.28

  • 10.3.23

  • 10.3.20

  • 10.3.13

  • 10.3.8

MariaDB 10.2

  • 10.2.43

  • 10.2.41

  • 10.2.40

  • 10.2.39

  • 10.2.37

  • 10.2.32

  • 10.2.21

  • 10.2.15

  • 10.2.12

  • 10.2.11

在创建新数据库实例时,您可以指定当前支持的任何 MariaDB 版本。您可以指定主要版本(例如,MariaDB 10.5),以及指定主要版本支持的任何次要版本。如果没有指定版本,Amazon RDS 会默认使用支持的版本,通常是最新的版本。如果指定了主要版本但未指定次要版本,Amazon RDS 将默认使用您指定的主要版本的最新版本。要查看受支持版本的列表以及新建数据库实例的默认值,请使用 describe-db-engine-versions Amazon CLI 命令。

默认的 MariaDB 版本可能因 Amazon 区域而异。要创建具有特定次要版本的数据库实例,请在数据库实例创建过程中指定次要版本。您可以使用以下 Amazon 命令确定 Amazon CLI 区域的默认次要版本:

aws rds describe-db-engine-versions --default-only --engine mariadb --engine-version major-engine-version --region region --query "*[].{Engine:Engine,EngineVersion:EngineVersion}" --output text

major-engine-version 替换为主引擎版本,并将 region 替换为 Amazon 区域。例如,以下 Amazon CLI 命令返回 10.5 主要版本和美国西部(俄勒冈)Amazon区域(us-west-2)的默认 MariaDB 次要引擎版本:

aws rds describe-db-engine-versions --default-only --engine mariadb --engine-version 10.5 --region us-west-2 --query "*[].{Engine:Engine,EngineVersion:EngineVersion}" --output text

Amazon RDS 上的 MariaDB 功能支持

在以下几部分中,查找 Amazon RDS for MariaDB 各主要版本上的 MariaDB 功能支持:

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

Amazon RDS 对 MariaDB 10.6 的支持

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

  • MyRocks 存储引擎 - 您可以将 MyRocks 存储引擎与 RDS for MariaDB 结合使用,以优化写入密集型高性能 Web 应用程序的存储消耗。有关更多信息,请参阅 Amazon RDS 上的 MariaDB 支持的存储引擎MyRocks

  • IAM 数据库身份验证 - 您可以使用 IAM 数据库身份验证来提高安全性和集中管理与 MariaDB 数据库实例的连接。有关更多信息,请参阅 适用于 MariaDB、MySQL 和 PostgreSQL 的 IAM 数据库身份验证

  • 升级选项 - 您现在可以从以前的任何主要版本(10.2、10.3、10.4、10.5)升级到 RDS for MariaDB 版本 10.6。您还可以制作现有 MySQL 5.6 或 5.7 数据库实例的快照,然后将快照还原到 MariaDB 10.6 实例。有关更多信息,请参阅 升级 MariaDB 数据库引擎

  • 延迟复制 - 您现在可以设置一个只读副本落后于源数据库的可配置时间段。在标准 MariaDB 复制配置中,源和副本之间的复制延迟最小。使用延迟复制时,您可以将故意延迟设置为灾难恢复策略。有关更多信息,请参阅 使用 MariaDB 配置延迟复制

  • Oracle PL/SQL 兼容性 - 通过使用 RDS for MariaDB 版本 10.6,您可以更轻松地将旧版 Oracle 应用程序迁移到 Amazon RDS。有关更多信息,请参阅 SQL_MODE=ORACLE

  • 原子 DDL - 您的动态数据语言 (DDL) 语句与 RDS for MariaDB 版本 10.6 结合使用可能相对安全。CREATE TABLEALTER TABLERENAME TABLEDROP TABLEDROP DATABASE 和相关的 DDL 语句现在是原子的。要么语句成功,要么完全相反。有关更多信息,请参阅原子 DDL

  • 其他增强功能 - 这些增强功能包括在 SQL 中将 JSON 数据转换为关系格式的 JSON_TABLE 功能,以及使用 Innodb 更快地加载空表数据。它们还包括用于分析和故障排除的新 sys_schema,用于忽略未使用索引的优化器增强以及性能改进。有关更多信息,请参阅 JSON_TABLE

  • 参数的新默认值 – 对于 MariaDB 10.6 版本数据库实例,以下参数具有新的默认值:

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

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

Amazon RDS 对 MariaDB 10.5 的支持

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

  • InnoDB 增强功能 – MariaDB 10.5 版本包括 InnoDB 增强功能。有关更多信息,请参阅 InnoDB:性能改进等。

  • 性能架构更新 – MariaDB 10.5 版本包括性能架构更新。有关详细信息,请参阅性能架构更新以满足 MySQL 5.7 工具和表的要求

  • InnoDB 重做日志中的一个文件 – 在 10.5 之前的 MariaDB 版本中,innodb_log_files_in_group 参数的值设置为 2。在 MariaDB 10.5 版本中,此参数的值设置为 1

    如果从之前的版本升级到 MariaDB 10.5 版本,而且未修改参数,则 innodb_log_file_size 参数值不变。但是,它适用于一个日志文件而非两个。因此,升级后的 MariaDB 10.5 版本数据库实例使用的重做日志大小是升级前所用大小的一半。此变化可能会对性能产生明显的影响。要解决此问题,您可以将 innodb_log_file_size 参数的值增大两倍。有关修改参数的信息,请参阅 修改数据库参数组中的参数

  • SHOW SLAVE STATUS 命令不受支持 – 在 10.5 之前的 MariaDB 版本中,SHOW SLAVE STATUS 命令需要 REPLICATION SLAVE 特权。在 MariaDB 10.5 版本中,等效的 SHOW REPLICA STATUS 命令需要 REPLICATION REPLICA ADMIN 特权。此新权限不会向 RDS 主用户授予。

    请不要使用 SHOW REPLICA STATUS 命令,而是运行新的 mysql.rds_replica_status 存储过程以返回类似信息。有关更多信息,请参阅“mysql.rds_replica_status”。

  • SHOW RELAYLOG EVENTS 命令不受支持 – 在 10.5 之前的 MariaDB 版本中,SHOW RELAYLOG EVENTS 命令需要 REPLICATION SLAVE 特权。在 MariaDB 10.5 版本中,此命令需要 REPLICATION REPLICA ADMIN 特权。此新权限不会向 RDS 主用户授予。

  • 参数的新默认值 – 对于 MariaDB 10.5 版本数据库实例,以下参数具有新的默认值:

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

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

Amazon RDS 上的 MariaDB 10.4 支持

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

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

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

Amazon RDS 上的 MariaDB 10.3 支持

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

  • Oracle 兼容性 – PL/SQL 兼容性解析器、序列、用于补充 UNION 的 INTERSECT 和 EXCEPT、新的 TYPE OF 和 ROW TYPE OF 声明以及不可见的列

  • 时间数据处理 – 由系统控制版本的表,用于查询过去和现在的数据库状态

  • 灵活性 – 用户定义的汇总、不依赖存储的列压缩以及将客户端 IP 地址传送至服务器的代理协议支持

  • 可管理性 – 即时 ADD COLUMN 操作以及快速失败数据定义语言 (DDL) 操作

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

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

Amazon RDS 上的 MariaDB 10.2 支持

对于运行 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 功能:

  • S3 存储引擎

  • 身份验证插件 – GSSAPI

  • 身份验证插件 – Unix Socket

  • Amazon Key Management 加密插件

  • 低于 10.6 的 MariaDB 版本的延迟复制

  • InnoDB 和 Aria 的本机 MariaDB 静态加密。

    您可以按照 加密 Amazon RDS 资源 中的说明启用 MariaDB 数据库实例的加密。

  • HandlerSocket

  • 低于 10.6 的 MariaDB 版本的 JSON 表类型

  • MariaDB ColumnStore

  • MariaDB Galera 集群

  • 多源复制

  • 低于 10.6 的 MariaDB 版本的 MyRocks 存储引擎

  • 密码验证插件、simple_password_checkcracklib_password_check

  • Spider 存储引擎

  • Sphinx 存储引擎

  • TokuDB 存储引擎

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

  • 表和表空间加密

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

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

RDS for MariaDB 支持以下存储引擎。

目前,RDS for MariaDB 不支持其他存储引擎。

InnoDB 存储引擎

尽管 MariaDB 支持功能不同的多种存储引擎,但并非所有引擎都针对恢复和数据耐久性而进行了优化。InnoDB 是 Amazon RDS 上的 MariaDB 数据库实例的推荐存储引擎。Amazon RDS 的时间点还原和快照还原功能要求使用可恢复的存储引擎,且仅支持 MariaDB 版本的推荐存储引擎。

有关更多信息,请参阅 InnoDB

MyRocks 存储引擎

MyRocks 存储引擎在 RDS for MariaDB 版本 10.6 及更高版本中提供。在生产数据库中使用 MyRocks 存储引擎之前,我们建议您执行彻底的基准测试和测试,以验证您的使用案例相比 InnoDB 的任何潜在优势。

MariaDB 版本 10.6 的默认参数组包括 MyRocks 参数。有关更多信息,请参阅 MariaDB 的参数使用参数组

要创建使用 MyRocks 存储引擎的表,请在 CREATE TABLE 语句中指定 ENGINE=RocksDB。以下示例创建使用 MyRocks 存储引擎的表。

CREATE TABLE test (a INT NOT NULL, b CHAR(10)) ENGINE=RocksDB;

我们强烈建议您不要运行同时跨 InnoDB 和 MyRocks 表的事务。MariaDB 不保证跨存储引擎事务的 ACID(原子性、一致性、隔离性、持久性)。尽管可以在数据库实例中同时使用 InnoDB 和 MyRocks 表,但我们不建议使用这种方法,除非在从一个存储引擎迁移到另一个存储引擎的过程中。数据库实例中同时存在 InnoDB 和 MyRocks 表时,每个存储引擎都有自己的缓冲池,这可能会导致性能降低。

MyRocks 不支持 SERIALIZABLE 隔离或 gap 锁定。因此,通常不能将 MyRocks 与基于语句的复制结合使用。有关更多信息,请参阅 MyRocks 和复制

目前,您只能修改以下 MyRocks 参数:

MyRocks 存储引擎和 InnoDB 存储引擎可根据 rocksdb_block_cache_sizeinnodb_buffer_pool_size 参数的设置争用内存。在某些情况下,您可能只打算在特定数据库实例上使用 MyRocks 存储引擎。如果是这样,我们建议将 innodb_buffer_pool_size minimal 参数设置为最小值并将 rocksdb_block_cache_size 设置为尽可能高。

您可以使用 DescribeDBLogFilesDownloadDBLogFilePortion 操作来访问 MyRocks 日志文件。

有关 MyRocks 的更多信息,请参阅 MariaDB 网站上的 MyRocks

Amazon RDS 中的 MariaDB 文件大小限制

对于 MariaDB 数据库实例,在使用 InnoDB file-per-table 表空间时,表的最大大小为 16 TB。此限制也将系统表空间的最大大小约束为 16 TB。默认情况下,为 MariaDB 数据库实例设置 InnoDB file-per-table 表空间(每个表位于各自的表空间中)。此限制与 MariaDB 数据库实例的最大存储限制无关。有关存储限制的更多信息,请参阅 Amazon RDS 数据库实例存储

根据您的应用程序,使用 InnoDB file-per-table 表空间有一些优缺点。要确定适用于您的应用程序的最佳方法,请参阅 MySQL 文档中的 File-Per-Table 表空间

建议不要允许表增长到最大文件大小。一般而言,更好的方法是将数据分区到较小的表中,这可以提高性能并缩短恢复时间。

可用于将大型表划分为较小表的一个选项是分区。分区 可基于您指定的规则将大型表的各个部分分布到单独的文件中。例如,如果您按日期存储事务,则可以创建分区规则,以便使用分区将较旧的事务分布到单独的文件中。随后您可以定期存档无需随时可供应用程序使用的历史事务数据。有关更多信息,请参阅 MySQL 文档中的分区

确定表的文件大小

使用以下 SQL 命令可确定任何表是否太大以及是否适合进行分区。要更新表统计数据,请在每个表中发出一个 ANALYZE TABLE 命令。有关更多信息,请参阅 MySQL 文档中的 ANALYZE TABLE 语句

SELECT TABLE_SCHEMA, TABLE_NAME, round(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2) As "Approximate size (MB)", DATA_FREE FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema');

启用 InnoDB file-per-table 表空间

  • 要启用 InnoDB file-per-table 表空间,请在数据库实例的参数组中将 innodb_file_per_table 参数设置为 1

禁用 InnoDB file-per-table 表空间

  • 要禁用 InnoDB file-per-table 表空间,请在数据库实例的参数组中将 innodb_file_per_table 参数设置为 0

有关更新参数组的信息,请参阅使用参数组

当您启用或禁用 InnoDB file-per-table 表空间后,可以发出 ALTER TABLE 命令。您可以使用此命令将表从全局表空间移动到其自己的表空间。或者,您可以将表从其自己的表空间移动到全局表空间。以下是一个示例。

ALTER TABLE table_name ENGINE=InnoDB, ALGORITHM=COPY;

Amazon RDS 上的 MariaDB 安全性

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

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

  • 创建数据库实例时,使用 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

    该权限仅限在 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 Amazon CLI,并用相应参数指定一个新的主用户密码。如果实例中不存在主用户,将使用指定的密码创建主用户。

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

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

将 SSL 与 MariaDB 数据库实例结合使用

Amazon RDS 支持与运行 MariaDB 数据库引擎的数据库实例建立安全套接字层 (SSL) 连接。MariaDB 使用 OpenSSL 来实现安全连接。

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

有关下载证书的信息,请参阅使用 SSL/TLS 加密与数据库实例的连接

Amazon RDS for MariaDB 支持传输层安全性 (TLS) 1.0、1.1、1.2 和 1.3 版。下表显示了支持 TLS 的 MySQL 版本。

MariaDB 版本 TLS 1.0 TLS 1.1 TLS 1.2 TLS 1.3

MariaDB 10.6

支持

支持

支持

支持

MariaDB 10.5

支持

支持

支持

支持

MariaDB 10.4

支持

支持

支持

支持

MariaDB 10.3

支持

支持

支持

支持

MariaDB 10.2

支持

支持

支持

支持

重要

如果您使用的是 MySQL 5.7 版本、MySQL 8.0 版本或 MariaDB 版本,则 mysql 客户端程序参数略有不同。

要查看使用的版本,请使用 --version 选项运行 mysql 命令。在以下示例中,结果显示客户端程序来自 MariaDB。

$ mysql --version mysql Ver 15.1 Distrib 10.5.9-MariaDB, for osx10.15 (x86_64) using readline 5.1

大多数 Linux 发行版(例如 Amazon Linux、CentOS、SUSE 和 Debian)都用 MariaDB 取代了 MySQL,mysql 版本来自 MariaDB。

要使用默认 mysql 客户端加密连接,请使用 --ssl-ca 参数引用公有密钥以启动 mysql 客户端,如以下示例中所示。

以下示例说明了如何在 MySQL 5.7 和更高版本中使用 --ssl-ca 参数启动客户端。

mysql -h myinstance.123456789012.rds-cn-north-1.amazonaws.com --ssl-ca=[full path]global-bundle.pem --ssl-mode=REQUIRED

以下示例说明了如何在 MariaDB 客户端和更高版本中使用 --ssl-ca 参数启动客户端。

mysql -h myinstance.123456789012.rds-cn-north-1.amazonaws.com --ssl-ca=[full path]global-bundle.pem --ssl

有关下载证书捆绑包的信息,请参阅使用 SSL/TLS 加密与数据库实例的连接

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

使用以下语句。

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

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

缓存预热

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

默认情况下,在 MariaDB 10.2 和更高版本的数据库实例上启用缓存预热。要启用该功能,请将数据库实例的参数组中的 innodb_buffer_pool_dump_at_shutdowninnodb_buffer_pool_load_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 的参数。有关适用于 RDS for MariaDB 数据库引擎的参数的更多信息,请参阅MariaDB 的参数

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

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

MariaDB 数据库实例的本地时区

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

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

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

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

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

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

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

Africa/Cairo

Asia/Riyadh

Africa/Casablanca

Asia/Seoul

Africa/Harare

Asia/Shanghai

Africa/Monrovia

Asia/Singapore

Africa/Nairobi

Asia/Taipei

Africa/Tripoli

Asia/Tehran

Africa/Windhoek

Asia/Tokyo

America/Araguaina

Asia/Ulaanbaatar

America/Asuncion

Asia/Vladivostok

America/Bogota

Asia/Yakutsk

America/Buenos_Aires

Asia/Yerevan

America/Caracas

Atlantic/Azores

America/Chihuahua

Australia/Adelaide

America/Cuiaba

Australia/Brisbane

America/Denver

Australia/Darwin

America/Fortaleza

Australia/Hobart

America/Guatemala

Australia/Perth

America/Halifax

Australia/Sydney

America/Manaus

Brazil/East

America/Matamoros

Canada/Newfoundland

America/Monterrey

Canada/Saskatchewan

America/Montevideo

Canada/Yukon

America/Phoenix

Europe/Amsterdam

America/Santiago

Europe/Athens

America/Tijuana

Europe/Dublin

Asia/Amman

Europe/Helsinki

Asia/Ashgabat

Europe/Istanbul

Asia/Baghdad

Europe/Kaliningrad

Asia/Baku

Europe/Moscow

Asia/Bangkok

Europe/Paris

Asia/Beirut

Europe/Prague

Asia/Calcutta

Europe/Sarajevo

Asia/Damascus

Pacific/Auckland

Asia/Dhaka

Pacific/Fiji

Asia/Irkutsk

Pacific/Guam

Asia/Jerusalem

Pacific/Honolulu

Asia/Kabul

Pacific/Samoa

Asia/Karachi

US/Alaska

Asia/Kathmandu

US/Central

Asia/Krasnoyarsk

US/Eastern

Asia/Magadan

US/East-Indiana

Asia/Muscat

US/Pacific

Asia/Novosibirsk

UTC

InnoDB 保留字

InnoDB 是 RDS for MariaDB 的保留字。您不能将此名称用于 MariaDB 数据库。

Amazon RDS for MariaDB 已弃用的版本

Amazon RDS for MariaDB 版本 10.0 和 10.1 已弃用。

有关详细信息,请参阅公告:延长 Amazon RDS for MariaDB 10.0 和 10.1 的生命周期终止过程

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