Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Installing MySQL on Linux Using RPM Packages from Oracle

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

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

Note

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

MySQL RPM 软件包

表 2.8 MySQL 社区版的 RPM 软件包

Package Name Summary
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.3.0-1.el7.src.rpm,取决于所选的操作系统
附加的 *debuginfo* RPM 有多个 debuginfo 软件包:mysql-community-client-debuginfo、mysql-community-libs-debuginfo、mysql-community-server-debug-debuginfo 和 mysql-community-test-debuginfo。

表 2.9 MySQL 企业版的 RPM 软件包

Package Name Summary
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* RPMs 有几个 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

distributionarch 值指示 Linux 发行版和处理器类型,用于构建软件包。请参阅下表以获取发行版标识符列表:

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

Distribution Value Intended Use
el{version} 其中 {version} 是 Enterprise Linux 的主要版本,例如 el8 EL6 (8.0)、EL7、EL8 和 EL9 基于平台(例如 Oracle Linux、Red Hat Enterprise Linux 和 CentOS 的相应版本)
fc{version} 其中 {version} 是 Fedora 的主要版本,例如 fc37 Fedora 38 和 39
sl5 SUSE Linux Enterprise Server 15

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

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

以下部分仅适用于直接从 Oracle 下载的 RPM 软件包的安装过程,而不是通过 MySQL 存储库。

一些软件包之间存在依赖关系。如果您计划安装许多软件包,您可能希望下载 RPM 软件包捆绑 tar 文件,而不是单独下载它们。

在大多数情况下,您需要安装 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 可能会导致安装过程中出现依赖关系问题。

要仅安装客户端程序,可以跳过 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 开发者区域

Files or Resources Location
客户端程序和脚本 /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 init 脚本

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

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

Systemd 服务

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

对于 SLES:mysql

Pid 文件 /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 的组在系统上。

Notes
  • mysql 用户使用 -r-s /bin/false 选项的 useradd 命令创建,因此它不能登录到服务器主机(请参阅 创建 mysql 用户和组 详细信息)。要在 OS 上切换到 mysql 用户,请使用 --shell=/bin/bash 选项的 su 命令:

    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!';
Note

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

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

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

从多个 MySQL 版本安装客户端库。 可以安装多个客户端库版本,以便与旧应用程序保持兼容性,例如链接到以前的库。要安装旧的客户端库,请使用 --oldpackage 选项与 rpm。例如,要在 EL6 系统上安装 mysql-community-libs-5.5,该系统已经安装了来自 MySQL 8.0 的 libmysqlclient.21,请使用以下命令:

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

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

Note

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

从源 SRPMs 重建 RPM。 MySQL 的源代码 SRPM 包可供下载。它们可以使用标准的 rpmbuild 工具链重新构建 MySQL RPM。