MySQL和Linux / Unix/在Linux上安装MySQL/使用Oracle的RPM包在Linux上安装MySQL

2.4使用Oracle的RPM包在Linux上安装MySQL

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

请注意

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

MySQL RPM包

表2.2 MySQL社区版的RPM包

包名 总结
mysql-community-client MySQL客户端应用程序和工具
mysql-community-common 服务器和客户端库的常用文件
mysql-community-devel MySQL数据库客户端应用程序的开发头文件和库
mysql-community-embedded-compat MySQL服务器作为一个嵌入式库,与使用18版库的应用程序兼容
mysql-community-libs MySQL数据库客户端应用程序的共享库
mysql-community-libs-compat 用于以前MySQL安装的共享兼容性库
mysql-community-server 数据库服务器和相关工具
mysql-community-server-debug 调试服务器和插件二进制文件
mysql-community-test MySQL服务器的测试套件
mysql社区 源代码RPM看起来类似于mysql-community-8.0.26-1.el7.src。rpm,取决于所选的操作系统
额外的* debuginfo * rpm 有几个debuginfo包:mysql-community-client-debuginfo、mysql-community-lib -debuginfo、mysql-community-server-debug-debuginfo、mysql-community-server-debuginfo、mysql-community-test-debuginfo。

表2.3 MySQL企业版的RPM包

包名 总结
mysql-commercial-backup MySQL企业备份(在8.0.11中添加)
mysql-commercial-client MySQL客户端应用程序和工具
mysql-commercial-common 服务器和客户端库的常用文件
mysql-commercial-devel MySQL数据库客户端应用程序的开发头文件和库
mysql-commercial-embedded-compat MySQL服务器作为一个嵌入式库,与使用18版库的应用程序兼容
mysql-commercial-libs MySQL数据库客户端应用程序的共享库
mysql-commercial-libs-compat 用于以前MySQL安装的共享兼容性库;库的版本与您正在使用的发行版默认安装的库的版本相匹配
mysql-commercial-server 数据库服务器和相关工具
mysql-commercial-test MySQL服务器的测试套件
额外的* debuginfo * rpm 有几个debuginfo软件包:mysql-commercial-client-debuginfo、mysql-commercial-lib -debuginfo、mysql-commercial-server-debug-debuginfo、mysql-commercial-server-debuginfo和mysql-commercial-test-debuginfo。

rpm的全名具有以下语法:

packagename-版本-分布-rpm程序

分布而且值指示Linux发行版和为其构建的处理器类型。分布标识符列表见下表:

表2.4 MySQL Linux RPM包分发标识符

分配值 预期用途
埃尔{version}在哪里{version}是主要的Enterprise Linux版本,如el8 基于EL6、EL7、el8的平台(例如Oracle Linux、Red Hat Enterprise Linux和CentOS的对应版本)
足球俱乐部{version}在哪里{version}是主要的Fedora版本,例如fc34 Fedora 33和34
sles12 SUSE Linux Enterprise Server 12

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

Shell > RPM -qpl mysql-community-server-版本-分布-rpm程序

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

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

在大多数情况下,您需要安装mysql-community-servermysql-community-clientmysql-community-libsmysql-community-common,mysql-community-libs-compat包来获得一个功能性的、标准的MySQL安装。要执行这种标准的基本安装,请转到包含所有这些包(最好不要包含其他名称类似的RPM包)的文件夹,并发出以下命令:

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

取代百胜zypper对于SLES,和dnfFedora。

尽管使用高级的包管理工具,如百胜安装包,用户喜欢直接rpm命令可以代替yum安装命令rpm -Uvh命令;然而,使用rpm -Uvh相反,这会使安装过程更容易失败,因为安装过程可能遇到潜在的依赖关系问题。

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

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

取代百胜zypper对于SLES,和dnfFedora。

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

表2.5 MySQL for Linux RPM包安装布局

文件或资源 位置
客户端程序和脚本 工作
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
系统V初始化脚本

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在系统上。

请注意

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

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

Shell > systemctl start mysqld

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

Shell > systemctl start mysql

如果操作系统已启用systemd,则为标准systemctl(或者,服务将参数反转)命令,例如停止开始状态,重新启动应该用来管理MySQL服务器服务。的mysqld默认情况下,该服务是启用的,并在系统重新启动时启动。注意,某些事情在systemd平台上的工作方式可能不同:例如,更改数据目录的位置可能会导致问题。看到第2.9节“使用systemd管理MySQL服务器”额外的信息。

在使用RPM和DEB包进行升级安装的过程中,如果MySQL服务器在升级时正在运行,则MySQL服务器将停止,升级过程将进行,然后重新启动MySQL服务器。一个例外:如果版本在升级过程中也发生了变化(比如社区版升级为商业版,或者反之),那么MySQL服务器就不会重新启动。

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

  • 完成服务器初始化。

  • 在data目录下生成SSL证书和密钥文件。

  • validate_password已安装并启用。

  • 一个超级用户帐户“根”@“localhost”被创建。设置超级用户的密码并将其存储在错误日志文件中。对于RHEL、Oracle Linux、CentOS和Fedora系统,使用以下命令来显示:

    Shell > sudo grep '临时密码' /var/log/mysqld.log

    在SLES系统中使用以下命令:

    Shell > sudo grep '临时密码' /var/log/mysql/mysqld.log

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

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

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

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

对于某些Linux发行版,可能有必要增加可用的文件描述符数量的限制mysqld.看到文件未找到和类似错误

从多个MySQL版本安装客户端库。可以安装多个版本的客户端库,例如,如果您想维护与链接到以前库的旧应用程序的兼容性。要安装较旧的客户端库,请使用——oldpackage选项rpm.例如,安装mysql -社区- libs - 5.5在EL6系统上libmysqlclient.21在MySQL 8.0中,使用如下命令:

Shell > RPM——oldpackage -ivh mysql-community-lib -5.5.50-2.el6.x86_64. RPM

调试方案。MySQL Server的一个特殊变体调试方案已经包含在服务器的RPM包中。它执行调试和内存分配检查,并在服务器运行时生成跟踪文件。要使用该调试版本,请从/usr/sbin/mysqld-debug,而不是开始作为一个服务或与/usr/sbin/mysqld.看到DBUG包您可以使用的调试选项。

请注意

用于调试版本的默认插件目录更改为/usr/lib64/mysql/plugin/usr/lib64/mysql/plugin/debug在MySQL 8.0.4。以前,改变是必要的plugin_dir/usr/lib64/mysql/plugin/debug为调试构建。

从源srpm重新构建rpm。MySQL的源代码SRPM包可以下载。它们可以按原样使用,用标准重新构建MySQL rpmrpmbuild工具链。