我有一个运行 MySQL 服务器的 CentOS 6 主机。我想将此服务器从 MySQL Enterprise Server 包迁移到 MySQL Community Server 包,具体如下:
- MySQL Enterprise RPM 称为
mysql-commercial
-something,版本为“5.7.22-1.1”。我将这些存储在自定义存储库中。 - 社区 RPM 被称为
mysql-community
-something,最新的可用版本是 '5.7.22-1',它是商业版本之后的单个 '.1' 版本。这些存储在公共存储库(http://repo.mysql.com/)中。
由于社区 RPM 的版本号略低于商业版本,因此我不能简单地将一个包换成另一个包。Yum 抱怨错误“Package foo-1 is obsoleted by foo-1.1”:
[root@devdb ~]# yum list --quiet available 'mysql-*-server'
Available Packages
mysql-community-server.x86_64 5.7.22-1.el6 mysql57-community
[root@devdb ~]#
[root@devdb ~]# yum install --quiet mysql-community-server
Package mysql-community-server-5.7.22-1.el6.x86_64 is obsoleted by mysql-commercial-server-5.7.22-1.1.el6.x86_64 which is already installed
[root@devdb ~]#
我尝试了几件事,例如指定如何在 Linux 中安装旧版本的 php (5.2.17)?,但在这种情况下不起作用:
[root@devdb ~]# yum install --quiet mysql-community-server-5.7.22-1.el6.x86_64
Package mysql-community-server-5.7.22-1.el6.x86_64 is obsoleted by mysql-commercial-server-5.7.22-1.1.el6.x86_64 which is already installed
[root@devdb ~]#
如何强制 Yum 使用旧版本号的包?
我无法找到仅使用 Yum 的方法。我最终做的是一个两步过程:
用于
rpm
删除 mysql-commercial-* 包,但不要删除任何依赖项。然后使用 Yum 以我能找到的最接近的版本号安装 mysql-community 包:
并恢复一些核心文件: