如何使用 Yum Repository 安装指定版本的 MySQL

2023-06-13,,

自从从使用 debian 系的 apt-get 转到使用 yum 工具之后一直不是很习惯,也没有去看过很多工具包安装的时候到底影响到了哪些文件等。这次借这次社区版 MySQL 安装来一并梳理一下。

首先我们前往 https://dev.mysql.com/downloads/repo/yum/ 下载对应的 yum repo 包。

这里可以看到 官方提供了4个 repo 包提供下载:

这里对应 3 个 linux 发行版。Red Hat Enterprise Linux 7 是红帽企业版7 后面是 Oracle Linux 7。 另外下面的 Fedora 是基于以前 Red Hat 个人版衍生而来。也是一个 Linux 发行版。 由于我这里的系统是 CentOs 7 我下载了第一个 rpm 包。

拿到包之后,我们将包添加进系统的 yum repo 列表之中。

sudo rpm -Uvh mysql80-community-release-el6-n.noarch.rpm

这个我们可以查看 CentOS 的指定路径下的文件可以看出来其安装后的效果。

我们进入 cd /etc/yum.repos.d 可以看到已经被我们安装上的 mysql-community.repo  mysql-community-source.repo 两个 repo

vi mysql-community.repo 可以查看包里面的信息。

同时我们使用

yum repolist all | grep mysql

来查看现在跟 MySQL 相关的 yum repo情况。这个时候如果使用 yum install 会默认安装现在 repo 里面最新的 MySQL 版本(To install the latest release from the latest GA series PS:GA(General Availability)),现在最新的版本是 8.0 。但是我现在只想安装 5.6 版本的,所以需要变化一下。来看下面的测试结果。

[root@iz2ze46vymskz5z22xevegz etc]# yum install mysql
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package mysql-community-client.x86_64 :8.0.-.el7 will be installed
--> Processing Dependency: mysql-community-libs(x86-) >= 8.0. for package: mysql-community-client-8.0.-.el7.x86_64
--> Running transaction check
---> Package mariadb-libs.x86_64 :5.5.-.el7 will be obsoleted
--> Processing Dependency: libmysqlclient.so.()(64bit) for package: :postfix-2.10.-.el7.x86_64
--> Processing Dependency: libmysqlclient.so.(libmysqlclient_18)(64bit) for package: :postfix-2.10.-.el7.x86_64
---> Package mysql-community-libs.x86_64 :8.0.-.el7 will be obsoleting
--> Processing Dependency: mysql-community-common(x86-) >= 8.0. for package: mysql-community-libs-8.0.-.el7.x86_64
--> Running transaction check
---> Package mysql-community-common.x86_64 :8.0.-.el7 will be installed
---> Package mysql-community-libs-compat.x86_64 :8.0.-.el7 will be obsoleting
--> Finished Dependency Resolution Dependencies Resolved ==================================================================================================================================================================================================================
Package Arch Version Repository Size
==================================================================================================================================================================================================================
Installing:
mysql-community-client x86_64 8.0.-.el7 mysql80-community M
mysql-community-libs x86_64 8.0.-.el7 mysql80-community 2.2 M
replacing mariadb-libs.x86_64 :5.5.-.el7
mysql-community-libs-compat x86_64 8.0.-.el7 mysql80-community 2.1 M
replacing mariadb-libs.x86_64 :5.5.-.el7
Installing for dependencies:
mysql-community-common x86_64 8.0.-.el7 mysql80-community k Transaction Summary
==================================================================================================================================================================================================================
Install Packages (+ Dependent package) Total download size: M

可以看到 如果我 y 同意上面的信息,就会安装 8.0 的 MySQL 社区版。

现在我们需要调整成 5.6 的版本。

如果机器上有安装 yum-config-manager or dnf config-manager 这两个工具的话可以使用:

for platforms that are not dnf-enabled:

shell> sudo yum-config-manager --disable mysql80-community
shell> sudo yum-config-manager --enable mysql56-community
For dnf-enabled platforms:
shell> sudo dnf config-manager --disable mysql80-community
shell> sudo dnf config-manager --enable mysql56-community

来修改成自己想要的版本。如果像我这样。。。裸机啥都没有也有方法可以修改,我们去刚次啊提到的 /etc/yum.repos.d/ 下,找到 mysql-community.repo 编辑他。

可以看到 8.0 版本的信息是这样的

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

我们将 enabled=1 改成 0

并且将我们想要使用的 5.6 改成 1即可。让我们再使用 yum install mysql-community-server 命令安装 社区版 MySQL 5.6 版本。(注意,上面提到的版本 enable。同一时间只能有一个版本处于 enable 状态)


[root@iz2ze46vymskz5z22xevegz yum.repos.d]# yum install mysql-community-server
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package mysql-community-server.x86_64 0:5.6.41-2.el7 will be installed
--> Processing Dependency: mysql-community-common(x86-64) = 5.6.41-2.el7 for package: mysql-community-server-5.6.41-2.el7.x86_64
--> Processing Dependency: mysql-community-client(x86-64) >= 5.6.10 for package: mysql-community-server-5.6.41-2.el7.x86_64
--> Processing Dependency: perl(Data::Dumper) for package: mysql-community-server-5.6.41-2.el7.x86_64
--> Processing Dependency: perl(DBI) for package: mysql-community-server-5.6.41-2.el7.x86_64
--> Processing Dependency: libaio.so.1(LIBAIO_0.4)(64bit) for package: mysql-community-server-5.6.41-2.el7.x86_64
--> Processing Dependency: libaio.so.1(LIBAIO_0.1)(64bit) for package: mysql-community-server-5.6.41-2.el7.x86_64
--> Processing Dependency: libaio.so.1()(64bit) for package: mysql-community-server-5.6.41-2.el7.x86_64
--> Running transaction check
---> Package libaio.x86_64 0:0.3.109-13.el7 will be installed
---> Package mysql-community-client.x86_64 0:5.6.41-2.el7 will be installed
--> Processing Dependency: mysql-community-libs(x86-64) >= 5.6.10 for package: mysql-community-client-5.6.41-2.el7.x86_64
---> Package mysql-community-common.x86_64 0:5.6.41-2.el7 will be installed
---> Package perl-DBI.x86_64 0:1.627-4.el7 will be installed
--> Processing Dependency: perl(RPC::PlServer) >= 0.2001 for package: perl-DBI-1.627-4.el7.x86_64
--> Processing Dependency: perl(RPC::PlClient) >= 0.2000 for package: perl-DBI-1.627-4.el7.x86_64
---> Package perl-Data-Dumper.x86_64 0:2.145-3.el7 will be installed
--> Running transaction check
---> Package mariadb-libs.x86_64 1:5.5.56-2.el7 will be obsoleted
---> Package mysql-community-libs.x86_64 0:5.6.41-2.el7 will be obsoleting
---> Package perl-PlRPC.noarch 0:0.2020-14.el7 will be installed
--> Processing Dependency: perl(Net::Daemon) >= 0.13 for package: perl-PlRPC-0.2020-14.el7.noarch
--> Processing Dependency: perl(Net::Daemon::Test) for package: perl-PlRPC-0.2020-14.el7.noarch
--> Processing Dependency: perl(Net::Daemon::Log) for package: perl-PlRPC-0.2020-14.el7.noarch
--> Processing Dependency: perl(Compress::Zlib) for package: perl-PlRPC-0.2020-14.el7.noarch
--> Running transaction check
---> Package perl-IO-Compress.noarch 0:2.061-2.el7 will be installed
--> Processing Dependency: perl(Compress::Raw::Zlib) >= 2.061 for package: perl-IO-Compress-2.061-2.el7.noarch
--> Processing Dependency: perl(Compress::Raw::Bzip2) >= 2.061 for package: perl-IO-Compress-2.061-2.el7.noarch
---> Package perl-Net-Daemon.noarch 0:0.48-5.el7 will be installed
--> Running transaction check
---> Package perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7 will be installed
---> Package perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7 will be installed
--> Finished Dependency Resolution


Dependencies Resolved


==================================================================================================================================================================================================================
Package Arch Version Repository Size
==================================================================================================================================================================================================================
Installing:
mysql-community-libs x86_64 5.6.41-2.el7 mysql56-community 2.0 M
replacing mariadb-libs.x86_64 1:5.5.56-2.el7
mysql-community-server x86_64 5.6.41-2.el7 mysql56-community 59 M
Installing for dependencies:
libaio x86_64 0.3.109-13.el7 base 24 k
mysql-community-client x86_64 5.6.41-2.el7 mysql56-community 19 M
mysql-community-common x86_64 5.6.41-2.el7 mysql56-community 257 k
perl-Compress-Raw-Bzip2 x86_64 2.061-3.el7 base 32 k
perl-Compress-Raw-Zlib x86_64 1:2.061-4.el7 base 57 k
perl-DBI x86_64 1.627-4.el7 base 802 k
perl-Data-Dumper x86_64 2.145-3.el7 base 47 k
perl-IO-Compress noarch 2.061-2.el7 base 260 k
perl-Net-Daemon noarch 0.48-5.el7 base 51 k
perl-PlRPC noarch 0.2020-14.el7 base 36 k


Transaction Summary
==================================================================================================================================================================================================================
Install 2 Packages (+10 Dependent packages)


Total download size: 82 M

 

我们确定后开始安装。

安装完成后使用 /bin/systemctl start mysqld.service 启动 MySQL

然后 大功告成!

[root@iz2ze46vymskz5z22xevegz yum.repos.d]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is
Server version: 5.6. MySQL Community Server (GPL) Copyright (c) , , Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

完成安装和启动之后,我们可以在 /etc/my.conf 找到 MySQL 的配置文件, 默认数据存放位置是 /var/lib/mysql。

安装好之后默认 root 账户是没有密码的。设置 root 的密码使用

mysql> SET PASSWORD = PASSWORD('123456'); 

之后就是各自配置需要的内容即可!

下面再拿一节单独讲一下如何卸载 MySQL 因为可能因为安装错误或者版本升级各种各样的原因,我们需要卸载掉稚气啊安安装的 MySQL

使用 rpm -qa | grep mysql

找到目前已经安装的跟 MySQL 相关的软件包

rpm -e mysql-community-server-5.7.-.el7.x86_64
rpm -e mysql-community-client-5.7.26-1.el7.x86_64
如果还有一些驱动啥的就都卸载掉。

删除对应需要删除的软件包

先使用 systetmctl list-unit-files | grep mysql 查看 MySQL 相关的服务
然后使用 chkconfig -del mysql 删除相关的服务

删除对应的服务

清理相关的 MySQL 文件文件夹
find / -name mysql 找到对应的位置删除即可。 通用的五个地方是
/var/lib/mysql 存放数据的地方
/usr/share/mysql 不知道放什么的地方
/var/log/mysql/mysql-bin binlog 存放位置
/var/log/mysql 错误日志
/etc/my.cnf mysql 配置文件 其他的还是按照搜索出来的地方一一清除即可。

Reference:

https://dev.mysql.com/downloads/repo/yum/  Download MySQL Yum Repository

https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/  A Quick Guide to Using the MySQL Yum Repository

https://support.ruckuswireless.com/articles/000002490  What is a GA release?

https://blog.csdn.net/alex_bean/article/details/55656236  CentOS 下完全卸载 MySQL

如何使用 Yum Repository 安装指定版本的 MySQL的相关教程结束。

《如何使用 Yum Repository 安装指定版本的 MySQL.doc》

下载本文的Word格式文档,以方便收藏与打印。