CentOS7下安装MySQL8

本文主要介绍MySQL的yum仓库的使用方法,其中包含了MySQL的安装步骤

原文MySQL Yum仓库使用快速指南

摘要

MySQL Yum仓库提供了在Linux平台上安装MySQL服务器、客户端和其他组件的RPM包。这些包还可以升级和替换安装在Linux发行版上的可以从MySQL中获得的任何第三方MySQL软件包。

MySQL Yum仓库支持下列Linux发行版:

  • EL6和基于el7的平台(例如,Oracle Linux、Red Hat Enterprise Linux和CentOS的对应版本)
  • Fedora 27 和 28

注意:并不是所有版本的MySQL都支持上述所有的Linux版本。如果想确认您的Linux发行版是否支持某个特定版本,请参阅Selecting a Release Series

这是一个使用MySQL Yum仓库的快速指南。要了解更多信息,请参阅补充

目录

  • MySQL的安装步骤
  • 安装额外的MySQL产品和组件
  • 使用MySQL Yum仓库升级MySQL
  • 替换MySQL的本地第三方发行版
  • 使用Yum仓库安装MySQL NDB集群
  • 安装额外的MySQL NDB集群产品和组件
  • 补充

MySQL的安装步骤

注意:下面的介绍是在假设使用第三方分布式RPM包的MySQL还没有安装在您的系统的基础上;如果已经使用RPM包安装了MySQL,请参照【替换MySQL的本地第三方发行版】。

添加MySQL Yum仓库

首先,将MySQL Yum仓库添加到系统的仓库列表中。

按照以下步骤进行:

1.先跳转到MySQL Yum仓库的下载页面http://dev.mysql.com/downloads/repo/yum/

2.为您的平台选择并下载发布包

RPM安装包

这里我们选择mysql80-community-release-el7-1.noarch.rpm

3.使用下面的命令安装下载的版本包,用下载的包的名称替换platform-and-version-specific-package-name

1
shell> sudo rpm -Uvh platform-and-version-specific-package-name.rpm

例如,对于基于el7的系统包的版本n,命令如下:

1
shell> sudo rpm -Uvh mysql80-community-release-el7-1.noarch.rpm

注意:一旦发布包安装在您的系统上,如果Yum在MySQL Yum仓库中找到MySQL升级包或第三方软件包的替代品,那么通过yum update命令(支持dnf的系统是dnf upgrade)执行的任何系统更新都会自动升级系统上的MySQL包,同时也会替换任何本地的第三方软件包。具体可参考通过MySQL Yum仓库升级MySQL替换MySQL的本地第三方分发版以获取详细信息。

选择一个发行版本

在使用MySQL Yum仓库时,默认情况下会选择最新的MySQL GA版本。如果这是您想要的,您可以跳到下一个步骤,用Yum安装MySQL。

在MySQL Yum仓库http://repo.mysql.com/yum/中,MySQL社区服务器的不同版本系列托管在不同的子库中。最新的GA系列(目前是MySQL 8.0)的子库默认启用,而所有其他系列(例如,MySQL 5.7系列)的子库在默认情况下都是禁用的。

使用这个命令查看MySQL Yum仓库中的所有子库,并查看哪些子库是启用或禁用的(对于支持dnf的系统,用dnf替换yum):

1
shell> yum repolist all | grep mysql

要安装最新GA系列的最新版本,不需要配置。要安装最新GA系列以外的特定系列的最新版本,请在运行安装命令之前禁用最新GA系列的子库,并启用特定系列的子库。如果您的平台支持yum-config-managerdnf config-manager命令,您可以通过以下命令来实现这一点,例如,执行以下命令禁用8.0系列的子库,并启用5.7系列的子库

对于不支持dnf的平台:

1
2
shell> sudo yum-config-manager --disable mysql80-community
shell> sudo yum-config-manager --enable mysql57-community

对于支持dnf的平台

1
2
shell> sudo dnf config-manager --disable mysql80-community
shell> sudo dnf config-manager --enable mysql57-community

除了使用yum-config-managerdnf config-manager命令之外,您还可以通过手工编辑***/etc/yum.repos.d/mysql-community.repo***协议文件来选择一个系列。下面是一个发布系列的子库中的典型条目:

1
2
3
4
5
6
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

找到您想要配置的子库的条目,并编辑enabled的选项。指定enabled=0来禁用子库,或者enabled=1来启用子库。例如,要安装MySQL 5.7,请确保在MySQL 8.0的子库条目中enabled=0,并为5.7系列的条目设置enabled=1:

1
2
3
4
5
6
7
# Enable to use MySQL 5.7
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

您应该在任何时候只启用子库。当启用多个发布系列的子库时,Yum将使用最新的系列

通过运行以下命令并检查其输出(对于支持dnf的系统,用dnf替换yum),验证相应的子库是否已启用和禁用。

1
shell> yum repolist enabled | grep mysql

安装MySQL

通过以下命令安装MySQL(用于支持dnf的系统,用dnf替换yum):

1
shell> sudo yum install mysql-community-server

这将为MySQL服务器安装软件包,以及其他必需的软件包。

启动MySQL服务器

使用下面的命令启动MySQL服务器:

1
shell> sudo service mysqld start

对于基于el7的平台,执行以下命令:

1
shell> sudo systemctl start mysqld.service

您可以使用以下命令检查MySQL服务器的状态:

1
shell> sudo service mysqld status

对于基于el7的平台,使用systemctl:

1
shell> sudo systemctl status mysqld.service

MySQL服务器初始化(和MySQL 5.7一样):在服务器的初始启动时,由于服务器的数据目录是空的,所以会发现以下过程:

  • 服务器初始化
  • 在data目录中生成SSL证书和密钥文件
  • validate_password插件被安装并启用
  • 创建一个超级用户帐户的root‘@’localhost,超级用户的密码被设置并存储在错误日志文件中。要获取初始密码,请使用以下命令:
1
shell> sudo grep 'temporary password' /var/log/mysqld.log

尽快更改初始密码,通过初始密码登录,并为超级用户帐户设置一个自定义密码:

1
shell> mysql -uroot -p

修改密码

1
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';

注意:MySQL的validate_password插件是默认安装的。这将要求密码至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符,并且总密码长度至少为8个字符。

至此, MySQL8.0安装完毕!

确保MySQL安装(仅针对MySQL 5.6)

指令mysql_secure_installation允许您执行一些重要的操作,如设置根密码、删除匿名用户等等。通过运行它来确保MySQL 5.6已安装成功:

1
shell> mysql_secure_installation

记住您设置的根密码是很重要的。详细信息请参阅mysql_secure_installation — Improve MySQL Installation Security

在安装MySQL 5.7或更高版本后,不要运行mysql_secure_installation,因为该指令的程序已经由Yum仓库安装完成。

注意:对于基于el7的平台,请查看Compatibility Information for EL7-based platforms

安装额外的MySQL产品和组件

您可以使用Yum来安装和管理MySQL的各个组件。其中一些组件已存在MySQL Yum仓库的子库中。使用下面的命令列出MySQL Yum仓库的所有子库中可用的所有MySQL组件的包(对于支持dnf的系统,用dnf替换yum):

1
shell> yum --disablerepo=\* --enablerepo='mysql*-community*' list available

使用以下命令安装您所选择的任何包,用包名替换***package-name ***(对于支持dnf的系统,用dnf替换指令中的yum):

1
shell> sudo yum install package-name

例如,在Fedora上安装MySQL Workbench:

1
shell> sudo dnf install mysql-workbench-community

用MySQL Yum仓库升级MySQL

注意:在对MySQL进行任何更新之前,请仔细检查Upgrading MySQL的说明。在这里说明中,更新之前备份数据库的内容尤其重要。

使用MySQL Yum仓库进行就地更新(即取代旧版本,然后运行旧的数据文件的新版本)为你的MySQL安装通过以下步骤(假设你已经安装了MySQL与MySQL Yum资源库或RPM包直接从MySQL开发人员下载区域的MySQL下载页面;如果不是这样,请按照以下指示替换MySQL的本地第三方发行版):

选择一个目标系列

默认情况下,MySQL Yum库将MySQL更新为您在安装期间选择的发布系列中的最新版本(参见选择发布系列了解详细信息),这意味着,例如5.7版本。x安装不会更新为8.0。x自动释放。要更新到另一个发布系列,您需要首先禁用所选系列的子存储库(默认情况下,或者您自己),并启用目标系列的子存储库。要做到这一点,请参阅在选择发布系列以编辑/etc/yum.repo .d/mysql-community中的子存储库条目时给出的一般说明。回购协议文件。要从MySQL 5.7升级到8.0,请执行与选择发布系列所示步骤相反的操作,禁用MySQL 5.7系列的子存储库,并启用MySQL 8.0系列的子存储库。

一般来说,要从一个发布系列升级到另一个发布系列,请转到下一个系列,而不是跳过一个系列。例如,如果您正在运行MySQL 5.6并希望升级到8.0,请先升级到MySQL 5.7,然后再升级到8.0。

重要

关于从MySQL 5.6升级到5.7的重要信息,请参见从MySQL 5.6升级到5.7。

有关从MySQL 5.7升级到8.0的重要信息,请参见从MySQL 5.7升级到8.0。

MySQL Yum库不支持就地降级MySQL。按照降级MySQL的说明。

升级MySQL

对于不支持dnf的平台,通过以下命令升级MySQL及其组件:

1
shell> sudo yum update mysql-server

对于支持dnf的平台

1
shell> sudo dnf --refresh upgrade mysql-server

或者,您可以通过告诉Yum更新系统上的所有内容来更新MySQL,这可能会花费更多的时间;对于不支持dnf的平台:

1
shell> sudo yum update

对于支持dnf的平台

1
shell> sudo dnf upgrade

重启MySQL

MySQL服务器总是在Yum更新后重新启动。一旦服务器重新启动,运行mysql_upgrade来检查并解决旧数据和升级软件之间的任何不兼容问题。mysql_upgrade还可以执行其他功能;请参阅mysql_upgrade -检查和升级MySQL表以了解详细信息。

您还可以只更新特定的组件。使用以下命令列出MySQL组件的所有已安装包(对于支持dnf的系统,将yum替换为dnf):

1
shell> sudo yum list installed | grep "^mysql"

在识别您选择的组件的包名之后,对于不支持dnf的平台,使用以下命令更新包,用包名替换包名:

1
shell> sudo yum update package-name

对于支持dnf的平台

1
shell> sudo dnf upgrade package-name

替换MySQL的本地第三方发行版

要用MySQL Yum库最新的GA版本(目前来自MySQL 8.0系列)替换从受支持的Linux平台的本地软件仓库安装的第三方MySQL发行版,请执行以下步骤:

备份数据库
为了避免数据丢失,请在尝试使用MySQL Yum库替换MySQL安装之前备份数据库。有关如何备份数据库,请参阅备份和恢复。

添加MySQL Yum存储库

通过添加MySQL Yum存储库中给出的说明,将MySQL Yum存储库添加到您的系统的存储库列表中。

用Yum更新或DNF升级替换本机第三方发行版

通过设计,MySQL Yum资源库将取代你的本地,第三方MySQL在最新的GA版本(从目前的MySQL 8.0系列)从MySQL百胜库执行Yum更新命令时(或dnf升级dnf-enabled系统)系统,或Yum更新MySQL服务器(或MySQL服务器升级dnf dnf-enabled系统)。

在使用Yum存储库更新MySQL之后,使用旧版本的共享客户机库编译的应用程序应该继续工作。但是,如果您想重新编译应用程序并动态地将它们与更新后的库链接起来,请参阅升级共享客户机库以获得一些特殊的考虑。

备注

对于基于el7的平台:查看基于el7的平台的兼容性信息。

如果您已经从一个非本地存储库下载并安装了MySQL的第三方分发版(例如,来自MariaDB或Percona),那么在MySQL服务器的参考手册中,遵循替换它们的说明是很重要的。

使用Yum存储库安装MySQL NDB集群、

备注

下面的说明假设MySQL服务器和MySQL NDB集群都已经安装在您的系统上;如果不是这样,那么在继续之前,删除MySQL服务器或MySQL NDB集群,包括所有可执行文件、库、配置文件和数据目录。但是,没有必要删除您可能用于在系统上启用MySQL Yum存储库的放行包。

NDB集群SQL节点包对Perl类::MethodMaker模块有依赖关系。如果在您的系统上启用了EPEL(Enterprise Linux的额外包),Yum可以处理这种依赖关系;请参阅这里的说明,了解如何启用EPEL存储库。

MySQL Yum存储库支持MySQL NDB集群的安装,仅用于发布7.5.6和后续版本,并且只支持EL6和EL7平台。对于其他安装NDB集群的方法,请参阅Linux上的NDB集群的安装,或者在Linux上安装NDB集群,这取决于您正在使用的发布系列。

为MySQL NDB集群添加MySQL Yum存储库

按照添加MySQL Yum存储库的步骤,将MySQL Yum存储库添加到系统的存储库列表中。如果您之前已经完成了这个步骤,那么请确保您拥有最新版本的发布包,运行以下命令,以支持那些没有启用dnf的平台:

shell> sudo yum update mysql57-community-release

对于支持dnf的平台

shell> sudo dnf –refresh upgrade mysql57-community-release

选择MySQL NDB集群子存储库

在MySQL Yum库(http://repo.sqmyl.com/yum/)中,MySQL社区服务器和MySQL NDB集群托管在不同的子存储库中。默认情况下,将启用MySQL服务器最新GA系列的子存储库,并禁用MySQL NDB集群的子存储库。要安装NDB集群,请禁用MySQL服务器的子存储库,并启用NDB集群的子存储库。如果您的平台支持yum-config-manager或dnf config-manager命令,您可以通过发出以下命令来做到这一点,该命令禁用了MySQL 5.7系列的子存储库,并为MySQL NDB集群7.5启用了这个命令;对于不支持dnf的平台:

shell> sudo yum-config-manager –disable mysql57-community
shell> sudo yum-config-manager –enable mysql-cluster-7.5-community

对于支持dnf的平台

shell> sudo dnf config-manager –disable mysql57-community
shell> sudo dnf config-manager –enable mysql-cluster-7.5-community

除了使用yconfig管理器或dnf configmanager命令之外,您还可以通过手工编辑/etc/yum.repos.d/mysql-community来选择子存储库。回购协议文件。这是文件中MySQL 5.7个子存储库的示例条目:

[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

要安装NDB集群7.5,您必须禁用MySQL 5.7的子存储库,方法是为上面的子库条目启用启用=0,并启用NDB集群7.5个子存储库,使其条目=1:

[mysql-cluster-7.5-community]
name=MySQL Cluster 7.5 Community
baseurl=http://repo.mysql.com/yum/mysql-cluster-7.5-community/el/6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

在保存文件的更改之后,通过运行以下命令来验证是否启用了正确的子存储库(支持dnf的系统,用dnf替换yum):

shell> yum repolist enabled | grep mysql
!mysql-cluster-7.5-community/x86_64 MySQL Cluster 7.5 Community 18
!mysql-connectors-community/x86_64 MySQL Connectors Community 31
!mysql-tools-community/x86_64 MySQL Tools Community 33

NDB集群7.5(Community edition)的子存储库现已启用。
在列表中还有一些MySQL Yum存储库的其他子存储库,它们在默认情况下是启用的。

安装MySQL NDB集群

对于MySQL NDB集群的最小安装,请遵循以下步骤(用于支持dnf的系统,用dnf替换yum中的yum):

为SQL节点安装组件:

shell> sudo yum install mysql-cluster-community-server

安装完成后,按照启动MySQL服务器的步骤启动和初始化SQL节点。

如果您选择使用mysqld——初始化命令(请参阅使用mysqld手动初始化数据目录)来手动初始化数据目录,则会生成根密码并将其存储在SQL节点的错误日志中;有关如何查找密码的MySQL服务器初始化,以及您需要了解的一些事情。

为管理节点安装可执行文件:

shell> sudo yum install mysql-cluster-community-management-server

为数据节点安装可执行文件:

shell> sudo yum install mysql-cluster-community-data-node

配置和启动MySQL NDB集群

关于如何配置MySQL NDB集群和NDB集群的初始启动,请参阅NDB集群的初始配置,了解如何第一次启动它。

备注

对于基于el7的平台:查看基于el7的平台的兼容性信息。

安装额外的MySQL NDB集群产品和组件

您可以使用Yum从MySQL Yum存储库中安装MySQL NDB集群的单个组件和附加产品。
要做到这一点,假设您已经在系统的存储库列表中已经有了MySQL Yum存储库(如果没有的话,请遵循使用Yum存储库安装MySQL NDB集群的步骤1和步骤2),遵循在安装额外的MySQL产品和组件时所提供的相同步骤。

备注

已知的问题:目前,当您安装测试套件包(mysql-集群-社区测试)时,并不是运行MySQL NDB集群测试套件所需的所有组件。在运行测试套件之前,先安装yum安装(或dnf安装的dnf系统)的下列软件包:

  • mysql-cluster-community-auto-installer

  • mysql-cluster-community-management-server

  • mysql-cluster-community-data-node

  • mysql-cluster-community-memcached

  • mysql-cluster-community-java

  • mysql-cluster-community-ndbclient-devel

补充

关于MySQL Yum存储库的更多信息可以在MySQL服务器参考手册的以下部分中找到:
Installing MySQL on Linux Using the MySQL Yum Repository

Replacing a Third-Party Distribution of MySQL Using the MySQL Yum Repository

Upgrading MySQL with the MySQL Yum Repository