CentOS7下安装MySQL8
本文主要介绍MySQL的yum仓库的使用方法,其中包含了MySQL的安装步骤
摘要
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.为您的平台选择并下载发布包
这里我们选择mysql80-community-release-el7-1.noarch.rpm
3.使用下面的命令安装下载的版本包,用下载的包的名称替换platform-and-version-specific-package-name:
1 | sudo rpm -Uvh platform-and-version-specific-package-name.rpm |
例如,对于基于el7的系统包的版本n,命令如下:
1 | 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 | yum repolist all | grep mysql |
要安装最新GA系列的最新版本,不需要配置。要安装最新GA系列以外的特定系列的最新版本,请在运行安装命令之前禁用最新GA系列的子库,并启用特定系列的子库。如果您的平台支持yum-config-manager或dnf config-manager命令,您可以通过以下命令来实现这一点,例如,执行以下命令禁用8.0系列的子库,并启用5.7系列的子库
对于不支持dnf的平台:
1 | sudo yum-config-manager --disable mysql80-community |
对于支持dnf的平台
1 | sudo dnf config-manager --disable mysql80-community |
除了使用yum-config-manager或dnf config-manager命令之外,您还可以通过手工编辑***/etc/yum.repos.d/mysql-community.repo***协议文件来选择一个系列。下面是一个发布系列的子库中的典型条目:
1 | [mysql80-community] |
找到您想要配置的子库的条目,并编辑enabled的选项。指定enabled=0来禁用子库,或者enabled=1来启用子库。例如,要安装MySQL 5.7,请确保在MySQL 8.0的子库条目中enabled=0,并为5.7系列的条目设置enabled=1:
1 | # Enable to use MySQL 5.7 |
您应该在任何时候只启用子库。当启用多个发布系列的子库时,Yum将使用最新的系列
通过运行以下命令并检查其输出(对于支持dnf的系统,用dnf替换yum),验证相应的子库是否已启用和禁用。
1 | yum repolist enabled | grep mysql |
安装MySQL
通过以下命令安装MySQL(用于支持dnf的系统,用dnf替换yum):
1 | sudo yum install mysql-community-server |
这将为MySQL服务器安装软件包,以及其他必需的软件包。
启动MySQL服务器
使用下面的命令启动MySQL服务器:
1 | sudo service mysqld start |
对于基于el7的平台,执行以下命令:
1 | sudo systemctl start mysqld.service |
您可以使用以下命令检查MySQL服务器的状态:
1 | sudo service mysqld status |
对于基于el7的平台,使用systemctl:
1 | sudo systemctl status mysqld.service |
MySQL服务器初始化(和MySQL 5.7一样):在服务器的初始启动时,由于服务器的数据目录是空的,所以会发现以下过程:
- 服务器初始化
- 在data目录中生成SSL证书和密钥文件
- validate_password插件被安装并启用
- 创建一个超级用户帐户的root‘@’localhost,超级用户的密码被设置并存储在错误日志文件中。要获取初始密码,请使用以下命令:
1 | sudo grep 'temporary password' /var/log/mysqld.log |
尽快更改初始密码,通过初始密码登录,并为超级用户帐户设置一个自定义密码:
1 | 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 | 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 | 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