我有一台运行 MySQL 服务器的 CentOS 6 主机。我想将此服务器从 MySQL Enterprise Server 软件包迁移到 MySQL Community Server 软件包,具体情况如下:
mysql-commercial
-something,版本为“5.7.22-1.1”。我将它们存储在自定义存储库中。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 ~]#
Run Code Online (Sandbox Code Playgroud)
我尝试了一些方法,例如指定如何在 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 ~]#
Run Code Online (Sandbox Code Playgroud)
如何强制 Yum 使用版本号较旧的软件包?
我找不到只用 Yum 来做到这一点的方法。我最终做的是一个两步过程:
用于rpm
删除 mysql-commercial-* 软件包,但不删除任何依赖项。
[root@devdb ~]# rpm --erase --nodeps mysql-commercial-server mysql-commercial-libs-compat mysql-commercial-client mysql-commercial-common mysql-commercial-libs
warning: /etc/my.cnf saved as /etc/my.cnf.rpmsave
[root@devdb ~]#
Run Code Online (Sandbox Code Playgroud)然后使用 Yum 安装 mysql-community 软件包,安装我能找到的最接近的版本号:
[root@devdb ~]# yum --disablerepo=local-mysql-enterprise install mysql-community-libs-5.6.40-2.el6.el6.x86_64 mysql-community-common-5.6.40-2.el6.el6.x86_64 mysql-community-client-5.6.40-2.el6.el6.x86_64 mysql-community-libs-compat-5.6.40-2.el6.el6.x86_64 mysql-community-server-5.6.40-2.el6.el6.x86_64
...
Installed:
mysql-community-client.x86_64 0:5.7.22-1.el6 mysql-community-common.x86_64 0:5.7.22-1.el6
mysql-community-libs.x86_64 0:5.7.22-1.el6 mysql-community-libs-compat.x86_64 0:5.7.22-1.el6
mysql-community-server.x86_64 0:5.7.22-1.el6
Complete!
[root@devdb ~]#
Run Code Online (Sandbox Code Playgroud)并恢复一些核心文件:
[root@devdb ~]#cp /etc/my.cnf.rpmsave /etc/my.cnf
[root@devdb ~]#
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
12670 次 |
最近记录: |