第 3 章 使用 MySQL
MySQL 服务器是一个开源、快速且强大的数据库服务器。MySQL 是一个关系型数据库,其将数据转换为结构化的信息,并提供 SQL 接口来访问数据。它包含多个存储引擎和插件,以及地理信息系统(GIS)和 JavaScript 对象表示法(JSON)功能。
了解如何在 RHEL 系统上安装和配置 MySQL,如何备份 MySQL 数据、如何从较早的 MySQL 版本迁移,以及如何复制 MySQL。
3.1. 安装 MySQL
RHEL 9.0 提供 MySQL 8.0,作为此 Application Stream 的初始版本,您可以作为 RPM 软件包轻松安装。
由于 RPM 软件包有冲突,因此 MySQL 和 MariaDB 数据库服务器无法在 RHEL 9 中并行安装。您可以在容器中并行使用 MySQL 和 MariaDB 数据库服务器,请参阅 在容器中运行多个 MySQL 和 MariaDB 版本。
要安装 MySQL,请使用以下流程。
流程
安装 MySQL 服务器软件包:
# dnf install mysql-server
启动
mysqld
服务:# systemctl start mysqld.service
在引导时启用
mysqld
服务:# systemctl enable mysqld.service
建议:要在安装 MySQL 时提高安全性,请运行以下命令:
$ mysql_secure_installation
此命令启动一个完全交互的脚本,该脚本会提示过程中的每一步。该脚本可让您通过以下方法提高安全性:
- 为 root 帐户设置密码
- 删除匿名用户
- 禁止远程 root 登录(在本地主机之外)
3.1.1. 在容器中运行多个 MySQL 和 MariaDB 版本
要在同一个主机上运行 MySQL 和 MariaDB,请在容器中运行它们,因为由于 RPM 软件包冲突,您无法并行安装这些数据库服务器。
此流程以 MySQL 8.0 和 MariaDB 10.5 作为示例,但您可以使用红帽生态系统目录中提供的任何 MySQL 或 MariaDB 容器版本。
先决条件
-
container-tools
元数据包已安装。
流程
使用您的红帽客户门户网站帐户向
registry.redhat.io
注册中心进行身份验证:# podman login registry.redhat.io
如果您已登录到容器注册中心,请跳过这一步。
在容器中运行 MySQL 8.0 :
$ podman run -d --name <container_name> -e MYSQL_ROOT_PASSWORD=<mysql_root_password> -p <host_port_1>:3306 rhel9/mysql-80
有关使用此容器镜像用法的更多信息,请参阅 红帽生态系统目录。
在容器中运行 MariaDB 10.5 :
$ podman run -d --name <container_name> -e MYSQL_ROOT_PASSWORD=<mariadb_root_password> -p <host_port_2>:3306 rhel9/mariadb-105
有关使用此容器镜像用法的更多信息,请参阅 红帽生态系统目录。
在容器中运行 MariaDB 10.11 :
$ podman run -d --name <container_name> -e MYSQL_ROOT_PASSWORD=<mariadb_root_password> -p <host_port_3>:3306 rhel9/mariadb-1011
有关使用此容器镜像用法的更多信息,请参阅 红帽生态系统目录。
注意容器名称和两个数据库服务器的主机端口必须不同。
要确保客户端可以访问网络上的数据库服务器,请在防火墙中打开主机端口:
# firewall-cmd --permanent --add-port={<host_port_1>/tcp,<host_port_2>/tcp,<host_port_3>/tcp,...} # firewall-cmd --reload
验证
显示正在运行的容器的信息:
$ podman ps
连接到数据库服务器,并以 root 用户身份登录:
# mysql -u root -p -h localhost -P <host_port> --protocol tcp
其他资源