暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

原创 由迪 2020-10-19
1370

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

注意

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

MySQL RPM软件包

表2.8 MySQL Community Edition的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-community RPM的源代码看起来类似于mysql-community-8.0.24-1.el7.src.rpm,具体取决于所选的OS
其他* 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企业备份(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-libs-debuginfo mysql-commercial-server-debug-debuginfo mysql-commercial-server-debuginfo和mysql-commercial-test-debuginfo。

RPM的全名具有以下语法:

packagename-version-distribution-arch.rpm

的*distribution*和 *arch*值表示Linux分发和的量,包建处理器类型。有关分发标识符的列表,请参见下表:

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

分配价值 有可能的使用
el主要的Enterprise Linux版本*{version}*在哪里 {version},例如el8 基于EL6,EL7和EL8的平台(例如,相应版本的Oracle Linux,Red Hat Enterprise Linux和CentOS)
fc主要的Fedora版本*{version}*在哪里 {version},例如fc31 Fedora 31和32
sles12 SUSE Linux Enterprise Server 12

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

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

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

某些包之间存在依赖关系。如果计划安装许多软件包,则可能希望下载RPM捆绑包tar文件,该文件包含上面列出的所有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}-*

对于SLES,用zypper 替换yum,对于Fedora ,用dnf替换。

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

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

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

对于SLES,用zypper 替换yum,对于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
系统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
插座 /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(或 带有相反参数的服务)命令(例如stopstartstatusrestart)来管理MySQL服务器服务。该 mysqld服务默认情况下处于启用状态,并在系统重新启动时启动。请注意,某些事情在系统平台上可能会有所不同:例如,更改数据目录的位置可能会导致问题。有关更多信息请参见 第2.5.9节“使用systemd管理MySQL服务器”

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

注意

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

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

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

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

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

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

注意

在MySQL 8.0.4中, 用于调试构建的默认插件目录已从更改 /usr/lib64/mysql/plugin/usr/lib64/mysql/plugin/debug。此前,有必要改变 plugin_dir,以 /usr/lib64/mysql/plugin/debug建立调试。

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

最后修改时间:2020-10-19 14:55:40
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论