Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


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

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

在使用RPM-基于的Linux发行版时,推荐使用Oracle提供的RPM软件包来安装MySQL。对于MySQL Community Edition,有两个获取它们的来源:

Note

其他供应商也提供了MySQL的RPM软件包。请注意,这些软件包可能与Oracle构建的软件包不同,包括功能、能力和约定(包括通信设置),并且本手册中的安装说明不一定适用于它们。相反,应该consult the vendor's instructions。

表2.8 MySQL Community Edition 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.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 Enterprise Edition RPM 软件包

Package Name Summary
mysql-commercial-backup MySQL Enterprise Backup
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-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

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和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 文件,而不是单独下载每个软件包,这样可以避免单独下载每个软件包的麻烦。

在大多数情况下,您需要安装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替换为zypper以适用于SLES,或者将其替换为dnf以适用于Fedora。

虽然使用高级包管理工具,如yum安装包是非常推荐的,但是用户可以选择直接使用rpm命令来安装包;然而,使用rpm -Uvh命令代替yum install命令将使安装过程更加容易出错,因为可能会遇到依赖性问题。

要只安装客户端程序,可以跳过mysql-community-server包;输入以下命令:

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

yum替换为zypper以适用于SLES,或者将其替换为dnf以适用于Fedora。

MySQL RPM软件包的标准安装结果在系统目录下创建文件和资源,以下表格显示了这些文件和资源的位置。

表2.11:Linux RPM软件包(来自 MySQL 开发者区)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
密钥ring目录 /var/lib/mysql-keyring
Unix手册页 /usr/share/man
包含文件(头文件) /usr/include/mysql
库文件 /usr/lib/mysql
其他支持文件(例如错误信息和字符集文件) /usr/share/mysql

安装还创建了名为mysql的用户和名为mysql的组。

Notes
  • 使用useradd命令的-r-s /bin/false选项创建了mysql用户,以便它不能在您的服务器主机上登录(请参阅创建mysql用户和组以获取详细信息)。要在您的OS中切换到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(或alternatively,service with the arguments reversed)命令,如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中找到 debug 信息。

对于一些 Linux 发行版,可能需要增加对mysqld可用的文件描述符限制。请参阅第 B.3.2.16 节,“File Not Found and Similar Errors”

从多个 MySQL 版本安装客户端库.  可以安装多个客户端库版本,例如在您想要保持与 older 应用程序的兼容性时,这些应用程序链接到之前的库。要安装一个 older 客户端库,请使用 --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 Server 的一个特殊变体是使用调试包编译的。它执行调试和内存分配检查,并在服务器运行时生成 trace 文件。要使用该调试版本,请使用 /usr/sbin/mysqld-debug,而不是作为服务或使用 /usr/sbin/mysqld。请参阅第 7.9.4 节,“The DBUG Package”,了解可用的调试选项。

Note

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

从源代码SRPM包重建RPMs。MySQL的源代码SRPM包可供下载。它们可以直接使用标准rpmbuild工具链来重建MySQL RPMs。