在RockyLinux 8上解决MariaDB和MySQL之间的竞争的方式

MariaDB和MySQL是非常相似且受欢迎的开源数据库系统,它们具有非常类似的功能。有时候,如果在同一系统上同时使用它们可能会发生软件包竞争的情况。本文将提出一些解决方案,以应对MariaDB和MySQL软件包之间以及MariaDB软件包不同版本之间的竞争问题。

错误内容

如果出现以下错误:

 Problem 1: package mariadb-devel-3:10.3.35-1.module+el8.6.0+1005+cdf19c22.x86_64 conflicts with mysql-devel provided by MariaDB-devel-10.6.12-1.el8.x86_64
  - cannot install the best update candidate for package mariadb-devel-3:10.3.35-1.module+el8.6.0+1005+cdf19c22.x86_64
  - cannot install the best update candidate for package mariadb-connector-c-devel-3.1.11-2.el8_3.x86_64
 Problem 2: package mariadb-gssapi-server-3:10.3.35-1.module+el8.6.0+1005+cdf19c22.x86_64 requires mariadb-server(x86-64) = 3:10.3.35-1.module+el8.6.0+1005+cdf19c22, but none of the providers can be installed
  - package mariadb-server-3:10.3.35-1.module+el8.6.0+1005+cdf19c22.x86_64 conflicts with mysql-server provided by MariaDB-server-10.6.12-1.el8.x86_64
  - package MariaDB-server-10.6.12-1.el8.x86_64 obsoletes mariadb-server provided by mariadb-server-3:10.3.35-1.module+el8.6.0+1005+cdf19c22.x86_64
  - cannot install the best update candidate for package mariadb-server-3:10.3.35-1.module+el8.6.0+1005+cdf19c22.x86_64
  - cannot install the best update candidate for package mariadb-gssapi-server-3:10.3.35-1.module+el8.6.0+1005+cdf19c22.x86_64
 Problem 3: problem with installed package mariadb-gssapi-server-3:10.3.35-1.module+el8.6.0+1005+cdf19c22.x86_64
  - package mariadb-gssapi-server-3:10.3.35-1.module+el8.6.0+1005+cdf19c22.x86_64 requires mariadb-server(x86-64) = 3:10.3.35-1.module+el8.6.0+1005+cdf19c22, but none of the providers can be installed
  - package mariadb-server-3:10.3.35-1.module+el8.6.0+1005+cdf19c22.x86_64 conflicts with mysql-server provided by MariaDB-server-10.6.12-1.el8.x86_64
  - package MariaDB-server-10.6.12-1.el8.x86_64 obsoletes mariadb-server provided by mariadb-server-3:10.3.35-1.module+el8.6.0+1005+cdf19c22.x86_64
  - cannot install the best update candidate for package mariadb-server-utils-3:10.3.35-1.module+el8.6.0+1005+cdf19c22.x86_64
 Problem 4: problem with installed package mariadb-devel-3:10.3.35-1.module+el8.6.0+1005+cdf19c22.x86_64
  - package mariadb-devel-3:10.3.35-1.module+el8.6.0+1005+cdf19c22.x86_64 conflicts with mysql-devel provided by MariaDB-devel-10.6.10-1.el8.x86_64
  - problem with installed package mariadb-connector-c-devel-3.1.11-2.el8_3.x86_64
  - package mariadb-devel-3:10.3.35-1.module+el8.6.0+1005+cdf19c22.x86_64 conflicts with mysql-devel provided by MariaDB-devel-10.6.11-1.el8.x86_64
  - package mariadb-devel-3:10.3.35-1.module+el8.6.0+1005+cdf19c22.x86_64 conflicts with mysql-devel provided by MariaDB-devel-10.6.12-1.el8.x86_64
  - package mariadb-connector-c-devel-3.1.11-2.el8_3.x86_64 requires mariadb-connector-c = 3.1.11-2.el8_3, but none of the providers can be installed
  - package MariaDB-shared-10.6.12-1.el8.x86_64 obsoletes mariadb-connector-c provided by mariadb-connector-c-3.1.11-2.el8_3.x86_64
  - package MariaDB-shared-10.6.12-1.el8.x86_64 obsoletes mariadb-connector-c provided by mariadb-connector-c-3.1.11-2.el8_3.i686
  - cannot install the best update candidate for package mariadb-connector-c-3.1.11-2.el8_3.x86_64
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

这是由于MariaDB和MySQL之间的软件包冲突以及MariaDB软件包中不同版本之间的冲突所导致的。

解决方案

解决这些竞争的选项有以下几种:

1. 删除冲突的软件包,并用新的替换。

在命令行上添加–allowerasing标志,删除冲突的软件包,并替换为新的。

sudo dnf update --allowerasing

跳过无法解决的依赖关系的软件包。

使用“–skip-broken”标志,跳过无法解决的有依赖关系的软件包,并更新剩余的软件包。

sudo dnf update --skip-broken

3. 不仅考虑最佳候选套餐,还要考虑其他版本。

使用–nobest标志,不仅考虑最佳候选包,还考虑其他版本。

sudo dnf update --nobest

在不同的地方安装MySQL和MariaDB。

如果希望在系统中同时使用MySQL和MariaDB,可以根据每个数据库系统的文档将它们安装在不同的位置。

只使用MariaDB

如果决定只使用MariaDB,则需要先删除与MySQL相关的软件包,然后进行更新。

sudo dnf remove mysql\* --allowerasing
sudo dnf update

只使用MySQL。

如果决定只使用MySQL,则需要先删除与MariaDB相关的软件包然后进行更新。

sudo dnf remove mariadb\* --allowerasing
sudo dnf update

请关注以下要点

在对系统进行更改之前,请务必备份数据。这样可以将数据丢失的风险降到最低。

总结

在这篇文章中,我们介绍了解决MariaDB和MySQL软件包之间的冲突以及解决不同版本的MariaDB软件包之间冲突的几种方法。通过选择最佳解决方案,我们能够有效地解决这些冲突,并保持系统的稳定性。

广告
将在 10 秒后关闭
bannerAds