在我的 CentOS 6.4 服务器上,我运行的是 MySQL 5.5.33,它是从remi 存储库。我决定通过 MySQL 自己的 yum 存储库将 MySQL 升级到 5.6.x:
安装存储库后,我的存储库列表如下:
# yum repolist enabled
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* Webmin: download.webmin.com
* base: mirrors.xmission.com
* epel: mirror.steadfast.net
* extras: mirror.thelinuxfix.com
* remi: remi.check-update.co.uk
* updates: mirrors.xmission.com
repo id repo name status
Webmin Webmin Distribution Neutral 175
base CentOS-6 - Base 6,367
epel Extra Packages for Enterprise Linux 6 - x86_64 10,737
extras CentOS-6 - Extras 14
mysql-connectors-community MySQL Connectors Community 6
mysql-tools-community MySQL Tools Community 6
mysql56-community MySQL 5.6 Community Server 46
remi Les RPM de remi pour Enterprise Linux 6 - x86_64 1,485
updates CentOS-6 - Updates 864
repolist: 19,700
这样 MySQL 5.6 存储库就安装并启用了。现在,如果我尝试检查已安装的 MySQL 的信息以查看可用的最新版本,我会得到以下信息:
# yum info mysql
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* Webmin: download.webmin.com
* base: mirrors.xmission.com
* epel: mirror.steadfast.net
* extras: mirror.thelinuxfix.com
* remi: remi.check-update.co.uk
* updates: mirrors.xmission.com
Installed Packages
Name : mysql
Arch : x86_64
Version : 5.5.33
Release : 1.el6.remi
Size : 29 M
Repo : installed
From repo : remi
Summary : MySQL clie.......
Available Packages
Name : mysql
Arch : x86_64
Version : 5.5.37
Release : 1.el6.remi
Size : 5.8 M
Repo : remi
Summary : MySQL client progr....
因此,看起来 yum 仍在查看 remi 存储库以获取最新版本。我猜它甚至没有查看 mysql56-community 存储库。因此,接下来我尝试这样做:
# yum info mysql --disablerepo=\* --enablerepo=mysql56-community
这应该会忽略除 Mysql 存储库之外的所有其他存储库。但我得到:
# yum info mysql --disablerepo=\* --enablerepo=mysql56-community
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
Installed Packages
Name : mysql
Arch : x86_64
Version : 5.5.33
Release : 1.el6.remi
Size : 29 M
Repo : installed
From repo : remi
Summ......
因此它仅列出我已安装的版本,并未报告任何其他可用的较新版本。我原本期望在 mysql56-community 存储库中看到可用的 5.6.x 版本。
我在这里遗漏了什么? 这里是否存在某种回购冲突?
更新:
# yum --disablerepo=\* --enablerepo='mysql*-community*' list available
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
mysql55-community | 2.5 kB 00:00
mysql57-community-dmr | 2.5 kB 00:00
Available Packages
mysql-community-client.x86_64 5.6.17-4.el6 mysql56-community
mysql-community-common.i686 5.6.17-4.el6 mysql56-community
mysql-community-common.x86_64 5.6.17-4.el6 mysql56-community
mysql-community-devel.i686 5.6.17-4.el6 mysql56-community
mysql-community-devel.x86_64 5.6.17-4.el6 mysql56-community
mysql-community-embedded.i686 5.6.17-4.el6 mysql56-community
mysql-community-embedded.x86_64 5.6.17-4.el6 mysql56-community
mysql-community-embedded-devel.i686 5.6.17-4.el6 mysql56-community
mysql-community-embedded-devel.x86_64 5.6.17-4.el6 mysql56-community
mysql-community-libs.i686 5.6.17-4.el6 mysql56-community
mysql-community-libs.x86_64 5.6.17-4.el6 mysql56-community
mysql-community-libs-compat.i686 5.6.17-4.el6 mysql56-community
mysql-community-libs-compat.x86_64 5.6.17-4.el6 mysql56-community
mysql-community-server.x86_64 5.6.17-4.el6 mysql56-community
mysql-community-test.x86_64 5.6.17-4.el6 mysql56-community
mysql-connector-odbc.x86_64 5.3.2-1.el6 mysql-connectors-community
mysql-connector-python.noarch 1.1.6-1.el6 mysql-connectors-community
mysql-utilities.noarch 1.3.6-1.el6 mysql-tools-community
mysql-workbench-community.x86_64 6.1.4-1.el6 mysql-tools-community
因此,有可用的 mysql-community-* 包,但没有名为 的包mysql-server
。如果我安装这些mysql-community*
包,这会与mysql-server
我当前安装的包发生什么冲突?
答案1
这两个存储库 remi 和 mysql56-community 不能一起使用,因为它们使用的软件包命名方案不兼容。yum info mysql
不会显示来自 MySQL 社区存储库的任何内容,因为没有任何软件包是mysql
在新命名方案下命名的。请尝试yum info mysql\*
其他方法。
因此,您无法直接从 Remi 将 MySQL 更新到 MySQL 社区存储库。相反,您需要遵循 MySQL 的更换 MySQL 第三方发行版的说明,特别是“非本地第三方发行版”部分。这涉及卸载 Remi 软件包,然后使用新名称安装 MySQL 社区软件包。
如果您需要保留其他软件包的 Remi 仓库,则应通过在仓库定义中添加exclude=mysql*
或适当的行来确保 yum 不再使用其 MySQL 软件包。includepkgs
答案2
它们是由不同的维护者打包的,并且可能会在提供相同文件等方面发生冲突,并且来自官方 repos 的 mysql rpm:s 可能不会认为自己是从 remi 安装的 mysql rpm:s 升级的。
我认为转储数据库、从 remi repo 卸载所有 mysql rpm:s、禁用 remi repo、yum clean all、从官方 repos 安装 mysql 并导入数据库。
答案3
您提供的链接建议使用“ --enablerepo='mysql*-community*'
”我会尝试一下。您也可以.repo
在 中编辑文件/etc/yum.repos.d/
。请/etc/yum.repos.d/remi.repo
确保enabled=0
已设置,而不是关闭 repo。此外,对于 mysql 社区 repo 文件,请确保将 enabled 设置为 1。