Red Hat Training

A Red Hat training course is available for RHEL 8

15.5. 数据库服务器

RHEL 8 提供以下数据库服务器:

  • MySQL 8.0,一个多用户、多线程的 SQL 数据库服务器。它由 MySQL 服务器守护进程(mysqld)和多个客户端程序组成。
  • MariaDB 10.3,一个多用户、多线程的 SQL 数据库服务器。就所有实际用途而言,MariaDBMySQL 二进制兼容。
  • PostgreSQL 10PostgreSQL 9.6,一种高级对象关系型数据库管理系统(DBMS)。
  • Redis 5,一种高级键值存储。它通常被称为数据结构服务器,因为键可以包含字符串、散列、列表、集合和排序的集合。Redis 在 RHEL 中第一次提供。

请注意,RHEL 8.0 中不包括 NoSQL MongoDB 数据库服务器,因为它使用服务器端公共许可证(SSPL)。

数据库服务器无法并行安装

由于与 RPM 软件包冲突,RHEL 8.0 中不能并行安装 mariadbmysql 模块。

按照设计,无法并行安装同一模块的多个版本(流)。例如,您需要从 postgresql 模块中只选择一个可用的流,可以是 10 (默认)或 9.6。在 RHEL 6 和 RHEL 7 的 Red Hat Software Collections 中可以并行安装组件。在 RHEL 8 中,可在容器中使用不同版本的数据库服务器。

15.5.1. MariaDB 10.3的显著变化

与 RHEL 7 提供的版本 5.5 相比,MariaDB 10.3 提供了多个新功能,例如:

  • 常见表表达式
  • system-versioned 表
  • FOR 循环
  • 不可见的栏
  • 序列
  • InnoDB 的即时 ADD COLUMN
  • 独立于存储引擎的栏压缩
  • 并行复制
  • 多源复制

此外,新的 mariadb-connector-c 软件包为 MySQLMariaDB 提供通用客户端库。此库可用于任何版本的 MySQLMariaDB 数据库服务器。因此,用户可以将一个应用程序构建连接到与 RHEL 8 一起分发的任何 MySQLMariaDB 服务器。

其他显著变化包括:

  • MariaDB Galera 集群 是一种同步的多源集群,现在是 MariaDB 的一个标准部分。
  • InnoDB 是默认存储引擎,而不是 XtraDB
  • 已删除 mariadb-bench 子包。
  • 默认允许插件成熟度等级已改为比服务器成熟度低 一 个等级。因此,在之前使用的,但成熟度较低的插件将不再加载。

另请参阅 在 Red Hat Enterprise Linux 8 上使用 MariaDB

15.5.2. MySQL 8.0中的显著变化

RHEL 8 提供了 MySQL 8.0,它提供以下改进:

  • MySQL 现在包含一个事务数据字典,它存储有关数据库对象的信息。
  • MySQL 现在支持角色,角色是特权的集合。
  • 默认字符集已从 latin1 变为 utf8mb4
  • 添加了对通用表表达式(非递归和递归)的支持。
  • MySQL 现在支持窗口功能,它使用相关行对查询中的每一行执行计算。
  • InnoDB 现在支持带有锁定读语句的 NOWAITSKIP LOCKED 选项。
  • 改进了与 GIS 相关的功能。
  • JSON 功能已被改进。
  • 新的 mariadb-connector-c 软件包为 MySQLMariaDB 提供通用客户端库。此库可用于任何版本的 MySQLMariaDB 数据库服务器。因此,用户可以将一个应用程序构建连接到与 RHEL 8 一起分发的任何 MySQLMariaDB 服务器。

此外,与 RHEL 8 一起分发的 MySQL 8.0 服务器被配置为使用 mysql_native_password 作为默认的身份验证插件,因为 RHEL 8 中的客户端工具和库与 caching_sha2_password 方法不兼容,后者在上游 MySQL 8.0 版本中 被默认使用。

要将默认身份验证插件更改为 caching_sha2_password,请编辑 /etc/my.cnf.d/mysql-default-authentication-plugin.cnf 文件:

[mysqld]
default_authentication_plugin=caching_sha2_password

15.5.3. PostgreSQL中的显著变化

RHEL 8.0 提供了两个版本的 PostgreSQL 数据库服务器,在 postgresql 模块的两个流中分发:PostgreSQL 10 (默认流)和 PostgreSQL 9.6。RHEL 7 包含 PostgreSQL 版本 9.2。

PostgreSQL 9.6 中的显著变化是:

  • 可以并行执行的顺序操作: scanjoinaggregate
  • 同步复制的改进
  • 改进了全文本搜索功能用于使用短语进行搜索
  • postgres_fdw 联合驱动程序现在支持远程 joinsortUPDATEDELETE 操作
  • 显著的提高性能,特别是在多 CPU 套接字服务器的可扩展性方面

PostgreSQL 10 的主要改进包括:

  • 使用 publishsubscribe 关键字的逻辑复制
  • 基于 SCRAM-SHA-256 机制的更强大的密码身份验证
  • 声明性表分区
  • 改进了查询并行性
  • 显著的常规性能改进
  • 改进了监控和控制

另请参阅 在 Red Hat Enterprise Linux 8 上使用 PostgreSQL