7.2. 使用 MariaDB
MariaDB 服务器是一个基于 MySQL 技术的开源、快速、强大的数据库服务器。 MariaDB 是一个关系型数据库,它将数据转换为结构化信息,并为访问数据提供 SQL 接口。它包含多个存储引擎和插件,以及地理信息系统(GIS)和 JavaScript 对象表示法(JSON)功能。 了解如何在 RHEL 系统上安装和配置 MariaDB ,如何备份 MariaDB 数据、如何从早期的 MariaDB 版本迁移,以及如何使用 MariaDB Galera 集群 复制数据库。
7.2.1. 安装 MariaDB
在 RHEL 8 中,以下版本都提供了
MariaDB
服务器,每个版本都由单独的流提供:
MariaDB 10.3
MariaDB 10.5
- 从 RHEL 8.4 开始提供
MariaDB 10.11
- available since RHEL 8.10
按照设计,无法并行安装同一模块的多个版本(stream)。因此,您必须从
mariadb
模块中只选择一个可用流。您可以在容器中使用不同版本的
MariaDB
数据库服务器,请参阅
在容器中运行多个 MariaDB 版本
。
由于 RPM 软件包有冲突,
MariaDB
和
MySQL
数据库服务器无法在 RHEL 8 中并行安装。您可以在容器中并行使用
MariaDB
和
MySQL
数据库服务器,请参阅
在容器中运行多个 MySQL 和 MariaDB 版本
。
要安装
MariaDB
,请使用以下流程:
通过从
mariadb
模块选择流(版本),并指定
server
配置文件来安装
MariaDB
服务器软件包。例如:
# yum module install mariadb:10.3/server
启动
mariadb
服务:
# systemctl start mariadb.service
启用
mariadb
服务,使其在引导时启动:
# systemctl enable mariadb.service
推荐的 MariaDB 10.3: 要在安装 MariaDB 时提高安全性,请运行以下命令:
$ mysql_secure_installation
此命令启动一个完全交互的脚本,该脚本会提示过程中的每一步。该脚本可让您通过以下方法提高安全性:
为 root 帐户设置密码
删除匿名用户
禁止远程 root 登录(在本地主机之外)
mysql_secure_installation
脚本在
MariaDB 10.5
或更高版本中不再有价值。安全性增强是自
MariaDB 10.5
以来的默认行为的一部分。
如果要从 RHEL 8 中的较早
mariadb
流升级,请按照
切换到更新的流 以及从 MariaDB 10.3 升级到 MariaDB 10.5 或从 MariaDB 10.5 升级到 MariaDB 10.11
中所述。
7.2.1.1. 在容器中运行多个 MariaDB 版本
要在同一主机上运行不同版本的
MariaDB
,请在容器中运行它们,因为您无法并行安装同一模块的多个版本(streams)。
container-tools
模块已安装。
使用您的红帽客户门户网站帐户向
registry.redhat.io
registry 进行身份验证:
# podman login registry.redhat.io
如果您已登录到容器 registry,请跳过这一步。 在容器中运行 MariaDB 10.3 :
$ podman run -d --name <container_name> -e MYSQL_ROOT_PASSWORD=<mariadb_root_password> -p <host_port_1>:3306 rhel8/mariadb-103
有关使用此容器镜像的更多信息,请参阅 红帽生态系统目录 。 在容器中运行 MariaDB 10.5 :
$ podman run -d --name <container_name> -e MYSQL_ROOT_PASSWORD=<mariadb_root_password> -p <host_port_2>:3306 rhel8/mariadb-105
有关使用此容器镜像的更多信息,请参阅 红帽生态系统目录 。 在容器中运行 MariaDB 10.11 :
$ podman run -d --name <container_name> -e MYSQL_ROOT_PASSWORD=<mariadb_root_password> -p <host_port_3>:3306 rhel8/mariadb-1011
有关使用此容器镜像的更多信息,请参阅 红帽生态系统目录 。 两个数据库服务器的容器名称和主机端口必须有所不同。 要确保客户端可以访问网络中的数据库服务器,请在防火墙中打开主机端口:
# firewall-cmd --permanent --add-port={<host_port_1>/tcp,<host_port_2>/tcp,<host_port_3>/tcp...} # firewall-cmd --reload