2.5.5 使用 Oracle 的 RPM 软件包在 Linux 上安装 MySQL

在基于 RPM 的 Linux 发行版上安装 MySQL 的推荐方法是使用 Oracle 提供的 RPM 软件包。对于 MySQL 社区版,有两种获取途径:

Note

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

如果您的系统上运行着这样的 MySQL 第三方发行版,并且现在想使用从 MySQL 开发人员专区下载的 RPM 软件包迁移到 Oracle 发行版,请参见下面的与其他供应商的 RPM 软件包的兼容性。但是,首选的迁移方法是使用MySQL Yum 存储库MySQL SLES 存储库

下 table 列出了 MySQL 的 RPM 软件包:

table2.8 MySQL Community Edition 的 RPM 软件包

Package NameSummary
mysql-community-server数据库服务器和相关工具
mysql-community-clientMySQLClient 端应用程序和工具
mysql-community-common服务器和 Client 端库的通用文件
mysql-community-develMySQL 数据库 Client 端应用程序的开发头文件和库
mysql-community-libsMySQL 数据库 Client 端应用程序的共享库
mysql-community-libs-compat以前的 MySQL 安装的共享兼容性库
mysql-community-embeddedMySQL 嵌入式库
mysql-community-embedded-develMySQL 的开发 Headers 文件和库作为嵌入式库
mysql-community-testMySQL 服务器的测试套件

table2.9 MySQL 企业版的 RPM 软件包

Package NameSummary
mysql-commercial-server数据库服务器和相关工具
mysql-commercial-clientMySQLClient 端应用程序和工具
mysql-commercial-common服务器和 Client 端库的通用文件
mysql-commercial-develMySQL 数据库 Client 端应用程序的开发头文件和库
mysql-commercial-libsMySQL 数据库 Client 端应用程序的共享库
mysql-commercial-libs-compat以前的 MySQL 安装的共享兼容性库
mysql-commercial-embeddedMySQL 嵌入式库
mysql-commercial-embedded-develMySQL 的开发 Headers 文件和库作为嵌入式库
mysql-commercial-testMySQL 服务器的测试套件

RPM 的全名具有以下语法:

packagename-version-distribution-arch.rpm
  • distribution arch *值指示 Linux 发行版和为其构建软件包的处理器类型。有关分发标识符的列 table,请参见下 table:

table2.10 MySQL Linux RPM 软件包分发标识符

distribution ValueIntended Use
el * {version} ,其中 {version} *是主要的 Enterprise Linux 版本,例如el8基于 EL6,EL7 和 EL8 的平台(例如,相应版本的 Oracle Linux,Red Hat Enterprise Linux 和 CentOS)
sles12SUSE Linux Enterprise Server 12

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

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

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

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

在大多数情况下,您需要安装mysql-community-servermysql-community-clientmysql-community-libsmysql-community-commonmysql-community-libs-compat软件包才能获得功能正常的 MySQL 安装。要执行这种标准的基本安装,请转至包含所有那些软件包的文件夹(最好不要包含其他名称相似的 RPM 软件包),并对* Red * Enterprise Linux/Oracle Linux 以外的平台发出以下命令/ CentOS:

shell> sudo yum install mysql-community-{server,client,common,libs}-*

将 SLES 的 yum 替换为 zypper

对于 Red Hat Enterprise Linux/Oracle Linux/CentOS 系统:

shell> sudo yum install mysql-community-{server,client,common,libs}-* mysql-5.*­

尽管最好使用 yum 这样的高级软件包 Management 工具来安装软件包,但是更喜欢直接使用 rpm 命令的用户可以将 yum install 命令替换为 rpm -Uvh 命令;但是,使用 rpm -Uvh **会使安装过程更容易失败,因为安装过程可能会遇到潜在的依赖性问题。

要仅安装 Client 端程序,可以跳过要安装的软件包列 table 中的mysql-community-server;否则,请单击“否”。对*红帽企业版 Linux/Oracle Linux/CentOS 以外的平台发出以下命令:

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

将 SLES 的 yum 替换为 zypper

对于 Red Hat Enterprise Linux/Oracle Linux/CentOS 系统:

shell> sudo yum install mysql-community-{client,common,libs}-* mysql-5.*

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

table2.11 来自 MySQL 开发人员专区的 Linux RPM 软件包的 MySQL 安装布局

文件或资源Location
Client 端程序和脚本/usr/bin
mysqld server/usr/sbin
Configuration file/etc/my.cnf
Data directory/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
系统服务对于 RHEL,Oracle Linux,CentOS 或 Fedora 平台:mysqld
对于 SLES:mysql
Pid 文件/var/run/mysql/mysqld.pid
socket/var/lib/mysql/mysql.sock
密钥环目录/var/lib/mysql-keyring
Unix 手册页/usr/share/man
包括(头文件)/usr/include/mysql
Library/usr/lib/mysql
其他支持文件(例如,错误消息和字符集文件)/usr/share/mysql

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

Note

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

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

shell> sudo service mysqld start

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

shell> sudo service mysql start

如果启用了 systemdos,则应使用标准的 service 命令(例如 stopstartstatusrestart )来 ManagementMySQL 服务器服务。 mysqld服务默认情况下处于启用状态,并在系统重新启动时启动。请注意,某些事情在系统平台上可能会有所不同:例如,更改数据目录的位置可能会导致问题。有关其他信息,请参见第 2.5.10 节“使用 systemdManagementMySQL 服务器”

在使用 RPM 和 DEB 软件包进行升级安装期间,如果在升级发生时 MySQL 服务器正在运行,则 MySQL 服务器将停止,升级将发生,并且 MySQL 服务器将重新启动。一个 exception:如果版本在升级过程中也发生了更改(例如从社区更改为商业版本,反之亦然),则不会重新启动 MySQL 服务器。

假设服务器的数据目录为空,则在服务器首次启动时,会发生以下情况:

  • 服务器已初始化。

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

  • validate_password已安装并启用。

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

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

对 SLES 系统使用以下命令:

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

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

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

Note

默认情况下已安装validate_passwordvalidate_password实施的默认密码策略要求密码至少包含一个大写字母,一个小写字母,一位数字和一个特殊字符,并且密码总长度至少为 8 个字符。

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

对于某些 Linux 发行版,可能有必要增加mysqld可用文件 Descriptors 数量的限制。参见B.4.2.17 节,“找不到文件和类似错误”

与其他供应商的 RPM 软件包的兼容性. 如果您已经从 Linux 发行版的本地软件存储库中安装了 MySQL 软件包,则最好使用 Oracle 的软件包 Management 系统从 Oracle 安装新的直接下载的软件包。平台(yum ,dnf 或 zypper **),如上所述。该命令用新软件包替换旧软件包,以确保旧应用程序与新安装程序兼容。例如,旧的mysql-libs软件包将替换为mysql-community-libs-compat软件包,该软件包为使用较旧的 MySQL 安装的应用程序提供了兼容替换的 Client 端库。如果系统上有mysql-community-libs-compat的旧版本,它也会被替换。

如果您已经安装了不是从 Linux 发行版本的本地软件存储库中获得的 MySQL 第三方软件包(例如,直接从 Oracle 以外的供应商下载的软件包),则应在安装新的直接下载的软件包之前先卸载所有这些软件包。从 Oracle。这是因为这些供应商的 RPM 软件包与 Oracle 的之间可能会发生冲突:例如,供应商关于哪些文件属于服务器以及哪些属于 Client 端库的约定可能与 Oracle 软件包所使用的约定不同。尝试安装 Oracle RPM 可能会导致显示消息,提示要安装的 RPM 中的文件与已安装的软件包中的文件冲突。

从多个 MySQL 版本安装 Client 端库. 可以安装多个 Client 端库版本,例如,要保持与链接到先前库的较旧应用程序的兼容性。要安装较旧的 Client 端库,请将--oldpackage选项与 rpm 一起使用。例如,要在具有 MySQL 5.7 中的libmysqlclient.20的 EL6 系统上安装mysql-community-libs-5.5,请使用以下命令:

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

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

Note

调试版本的默认插件目录在 5.7.21 中从/usr/lib64/mysql/plugin更改为/usr/lib64/mysql/plugin/debug。以前,必须将plugin_dir更改为/usr/lib64/mysql/plugin/debug才能进行调试。

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

GA 之前版本的root密码. 对于 MySQL 5.7.4 和 5.7.5,初始随机root密码写入到HOME环境变量命名的目录中的.mysql_secret文件中。尝试访问文件时,请记住,根据 os,使用诸如 sudo 之类的命令可能会导致HOME的值引用root系统用户的主目录。 .mysql_secret是使用模式 600 创建的,只有创建它的系统用户才能访问。在 MySQL 5.7.4 之前,在 MySQL 授权 table 中为 RPM 安装创建的帐户(包括root)最初没有密码。启动服务器后,应按照第 2.10 节“安装后的设置和测试”中的指示为它们分配密码。”