文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  使用 Oracle 提供的 RPM 软件包在 Linux 上安装 MySQL

2.5.4 使用 Oracle 提供的 RPM 软件包在 Linux 上安装 MySQL

在基于 RPM 的 Linux 发行版上安装 MySQL 的推荐方法是使用 Oracle 提供的 RPM 软件包。对于 MySQL 社区版,有两个获取它们的来源

注意

MySQL 的 RPM 发行版也由其他供应商提供。请注意,它们在功能、特性和约定(包括通信设置)方面可能与 Oracle 构建的不同,并且本手册中的安装说明不一定适用于它们。应查阅供应商的说明。

MySQL RPM 软件包

表 2.8 MySQL 社区版的 RPM 软件包

软件包名称 摘要
mysql-community-client MySQL 客户端应用程序和工具
mysql-community-client-plugins MySQL 客户端应用程序的共享插件
mysql-community-common 服务器和客户端库的公共文件
mysql-community-devel MySQL 数据库客户端应用程序的开发头文件和库
mysql-community-embedded-compat 作为嵌入式库的 MySQL 服务器,与使用版本 18 库的应用程序兼容
mysql-community-icu-data-files MySQL 正则表达式所需的 ICU 数据文件的 MySQL 软件包
mysql-community-libs MySQL 数据库客户端应用程序的共享库
mysql-community-libs-compat 以前安装的 MySQL 的共享兼容性库;仅当平台支持以前的 MySQL 版本时才存在
mysql-community-server 数据库服务器和相关工具
mysql-community-server-debug 调试服务器和插件二进制文件
mysql-community-test MySQL 服务器的测试套件
mysql-community 源代码 RPM 看起来类似于 mysql-community-8.4.0-1.el7.src.rpm,具体取决于所选的操作系统
其他 *debuginfo* RPM 有几个 debuginfo 软件包:mysql-community-client-debuginfo、mysql-community-libs-debuginfo、mysql-community-server-debug-debuginfo、mysql-community-server-debuginfo 和 mysql-community-test-debuginfo。

表 2.9 MySQL 企业版的 RPM 软件包

软件包名称 摘要
mysql-commercial-backup MySQL 企业备份
mysql-commercial-client MySQL 客户端应用程序和工具
mysql-commercial-client-plugins MySQL 客户端应用程序的共享插件
mysql-commercial-common 服务器和客户端库的公共文件
mysql-commercial-devel MySQL 数据库客户端应用程序的开发头文件和库
mysql-commercial-embedded-compat 作为嵌入式库的 MySQL 服务器,与使用版本 18 库的应用程序兼容
mysql-commercial-icu-data-files MySQL 正则表达式所需的 ICU 数据文件的 MySQL 软件包
mysql-commercial-libs MySQL 数据库客户端应用程序的共享库
mysql-commercial-libs-compat 以前安装的 MySQL 的共享兼容性库;仅当平台支持以前的 MySQL 版本时才存在。库的版本与您使用的发行版默认安装的库版本相匹配。
mysql-commercial-server 数据库服务器和相关工具
mysql-commercial-test MySQL 服务器的测试套件
其他 *debuginfo* RPM 有几个 debuginfo 软件包:mysql-commercial-client-debuginfo、mysql-commercial-libs-debuginfo、mysql-commercial-server-debug-debuginfo、mysql-commercial-server-debuginfo 和 mysql-commercial-test-debuginfo。

RPM 的全名具有以下语法

packagename-version-distribution-arch.rpm

发行版架构 值表示构建软件包的 Linux 发行版和处理器类型。有关发行版标识符的列表,请参见下表

表 2.10 MySQL Linux RPM 软件包发行版标识符

发行版值 预期用途
el{版本},其中 {版本} 是主要的企业 Linux 版本,例如 el8 基于 EL6(8.0)、EL7、EL8 和 EL9 的平台(例如,Oracle Linux、Red Hat Enterprise Linux 和 CentOS 的相应版本)
fc{版本},其中 {版本} 是主要的 Fedora 版本,例如 fc37 Fedora 38、39 和 40
sl5 SUSE Linux Enterprise Server 15

要查看 RPM 软件包(例如,mysql-community-server)中的所有文件,请使用以下命令

$> rpm -qpl mysql-community-server-version-distribution-arch.rpm

本节其余部分的讨论仅适用于直接从 Oracle 下载 RPM 软件包的安装过程,而不是通过 MySQL 软件库进行安装。

某些软件包之间存在依赖关系。如果您计划安装许多软件包,则可能希望下载 RPM 捆绑包 tar 文件,该文件包含上面列出的所有 RPM 软件包,因此您无需单独下载它们。

在大多数情况下,您需要安装 mysql-community-servermysql-community-clientmysql-community-client-pluginsmysql-community-libsmysql-community-icu-data-filesmysql-community-commonmysql-community-libs-compat 软件包,以获得功能正常的标准 MySQL 安装。要执行此类标准的基本安装,请转到包含所有这些软件包(最好是不包含具有类似名称的其他 RPM 软件包)的文件夹,并发出以下命令

$> sudo yum install mysql-community-{server,client,client-plugins,icu-data-files,common,libs}-*

yum 替换为 SLES 的 zypper,以及 Fedora 的 dnf

虽然使用 yum 之类的高级软件包管理工具来安装软件包要好得多,但更喜欢直接使用 rpm 命令的用户可以使用 rpm -Uvh 命令替换 yum install 命令;但是,使用 rpm -Uvh 会使安装过程更容易出错,因为安装过程可能会遇到潜在的依赖项问题。

要仅安装客户端程序,您可以在要安装的软件包列表中跳过 mysql-community-server;发出以下命令

$> sudo yum install mysql-community-{client,client-plugins,common,libs}-*

yum 替换为 SLES 的 zypper,以及 Fedora 的 dnf

使用 RPM 软件包进行 MySQL 的标准安装会在系统目录下创建文件和资源,如下表所示。

表 2.11 从 MySQL 开发者专区获取的 Linux RPM 软件包的 MySQL 安装布局

文件或资源 位置
客户端程序和脚本 /usr/bin
mysqld 服务器 /usr/sbin
配置文件 /etc/my.cnf
数据目录 /var/lib/mysql
错误日志文件

对于 RHEL、Oracle Linux、CentOS 或 Fedora 平台:/var/log/mysqld.log

对于 SLES:/var/log/mysql/mysqld.log

secure_file_priv 的值 /var/lib/mysql-files
System V 初始化脚本

对于 RHEL、Oracle Linux、CentOS 或 Fedora 平台:/etc/init.d/mysqld

对于 SLES:/etc/init.d/mysql

Systemd 服务

对于 RHEL、Oracle Linux、CentOS 或 Fedora 平台:mysqld

对于 SLES:mysql

进程 ID 文件 /var/run/mysql/mysqld.pid
套接字 /var/lib/mysql/mysql.sock
密钥环目录 /var/lib/mysql-keyring
Unix 手册页 /usr/share/man
包含(头)文件 /usr/include/mysql
/usr/lib/mysql
其他支持文件(例如,错误消息和字符集文件) /usr/share/mysql

安装还会在系统上创建一个名为 mysql 的用户和一个名为 mysql 的组。

注意
  • mysql 用户是使用 useradd 命令的 -r-s /bin/false 选项创建的,因此它没有登录到服务器主机的权限(有关详细信息,请参阅创建 mysql 用户和组)。要在您的操作系统上切换到 mysql 用户,请对 su 命令使用 --shell=/bin/bash 选项

    $> su - mysql --shell=/bin/bash

  • 使用旧软件包安装以前版本的 MySQL 可能会创建一个名为 /usr/my.cnf 的配置文件。强烈建议您检查该文件的内容并将所需设置迁移到 /etc/my.cnf 文件中,然后删除 /usr/my.cnf

在安装过程结束时,MySQL 不会自动启动。对于 Red Hat Enterprise Linux、Oracle Linux、CentOS 和 Fedora 系统,请使用以下命令启动 MySQL

$> systemctl start mysqld

对于 SLES 系统,命令相同,但服务名称不同

$> systemctl start mysql

如果操作系统启用了 systemd,则应使用标准的 systemctl 命令(或者,使用参数相反的 service 命令),例如 stopstartstatusrestart 来管理 MySQL 服务器服务。mysqld 服务默认启用,并在系统重启时启动。请注意,某些操作在 systemd 平台上的工作方式可能有所不同:例如,更改数据目录的位置可能会导致问题。有关更多信息,请参阅第 2.5.9 节“使用 systemd 管理 MySQL 服务器”

在使用 RPM 和 DEB 软件包进行升级安装期间,如果 MySQL 服务器在升级时正在运行,则 MySQL 服务器会停止,升级会进行,然后 MySQL 服务器会重新启动。有一个例外:如果版本在升级期间也发生变化(例如从社区版升级到商业版,反之亦然),则 MySQL 服务器不会重新启动。

在服务器初始启动时,如果服务器的数据目录为空,则会发生以下情况

  • 服务器已初始化。

  • 在数据目录中生成 SSL 证书和密钥文件。

  • validate_password 已安装并启用。

  • 创建了一个超级用户帐户 'root'@'localhost'。超级用户的密码已设置并存储在错误日志文件中。要显示它,请对 RHEL、Oracle Linux、CentOS 和 Fedora 系统使用以下命令

    $> sudo grep 'temporary password' /var/log/mysqld.log

    对 SLES 系统使用以下命令

    $> sudo grep 'temporary password' /var/log/mysql/mysqld.log

    下一步是使用生成的临时密码登录,并为超级用户帐户设置自定义密码

$> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
注意

validate_password 默认安装。validate_password 实现的默认密码策略要求密码至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符,并且总密码长度至少为 8 个字符。

如果在安装过程中出现问题,您可能会在错误日志文件 /var/log/mysqld.log 中找到调试信息。

对于某些 Linux 发行版,可能需要增加 mysqld 可用的文件描述符数量限制。请参阅第 B.3.2.16 节“找不到文件和类似错误”

从多个 MySQL 版本安装客户端库。 可以安装多个客户端库版本,例如,如果您希望保持与链接到以前库的旧应用程序的兼容性。要安装较旧的客户端库,请将 --oldpackage 选项与 rpm 一起使用。例如,要在具有来自 MySQL 8.0 的 libmysqlclient.21 的 EL6 系统上安装 mysql-community-libs-5.5,请使用如下命令

$> rpm --oldpackage -ivh mysql-community-libs-5.5.50-2.el6.x86_64.rpm

调试软件包。 服务器 RPM 软件包中包含使用调试软件包编译的 MySQL 服务器的特殊变体。它执行调试和内存分配检查,并在服务器运行时生成跟踪文件。要使用该调试版本,请使用 /usr/sbin/mysqld-debug 启动 MySQL,而不是将其作为服务或使用 /usr/sbin/mysqld 启动。有关您可以使用的调试选项,请参阅第 7.9.4 节“DBUG 软件包”

注意

默认插件目录为 /usr/lib64/mysql/plugin/debug,并且可以使用 plugin_dir 进行配置。

从源 SRPM 重建 RPM。 MySQL 的源代码 SRPM 软件包可供下载。它们可以按原样使用标准的 rpmbuild 工具链重建 MySQL RPM。