在基于RPM的Linux发行版上安装MySQL的推荐方法是使用Oracle提供的RPM软件包。对于MySQL社区版,有两种获取途径:
从MySQL软件存储库中:
MySQL Yum存储库。
MySQL SLES存储库。
从“ MySQL开发人员专区”的“ 下载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-tes
t MySQL服务器的测试套件
mysql-community
RPM的源代码类似于mysql-community-8.0.20-1.el7.src.rpm,具体取决于所选的OS
表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服务器的测试套件
RPM的全名具有以下语法:
packagename-version-distribution-arch.rpm
的distribution和 arch值表示Linux分发和的量,包建处理器类型。有关分发标识符的列表,请参见下表:
表2.10 MySQL Linux RPM软件包分发标识符
发布版简写
扩散说明
el6,el7和 el8
红帽企业版Linux / Oracle Linux / CentOS 6、7和8
fc29 fc30
Fedora 29和30
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-server, mysql-community-client, mysql-community-libs, mysql-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
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
Keyring目录
/var/lib/mysql-keyring
Unix手册页
/usr/share/man
包含(头)文件
/usr/include/mysql
lib
/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(或 带有相反参数的服务)命令(例如stop,start, status和restart)来管理MySQL服务器服务。该 mysqld服务默认情况下处于启用状态,并在系统重新启动时启动。请注意,某些事情在系统平台上可能会有所不同:例如,更改数据目录的位置可能会导致问题。有关更多信息,请参见 第2.5.9节“使用systemd管理MySQL服务器”。
在使用RPM软件包进行的升级安装过程中,如果在升级发生时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.4.2.17节“找不到文件和类似错误”
从多个MySQL版本安装客户端库。 可以安装多个客户端库版本,例如,要保持与链接到先前库的较旧应用程序的兼容性。要安装较旧的客户端库,请在rpm中使用该--oldpackage 选项。例如,要在具有MySQL 8.0 的EL6系统上进行安装 ,请使用以下命令: mysql-community-libs-5.5libmysqlclient.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。有关可以使用的调试选项,请参见第29.5.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 。