为什么 Ubuntu 禁止通过 Apt 安装 MySQL 和 MariaDB?

为什么 Ubuntu 禁止通过 Apt 安装 MySQL 和 MariaDB?

我见过让用户(包括我自己)困惑的事情是 Apt 不允许同时安装 MySQL 和 MariaDB。例如,这是一个将近 3 年的AskUbuntu 问题关于该主题,仍未得到解答。

作为该问题的具体描述,请考虑 Ubuntu 22.04。如果我使用 Apt 安装了 MySQL,然后尝试安装 MariaDB 包,Apt 将要求删除 MySQL:

# MySQL 8.0 is installed:
$ apt-cache policy mysql-server-8.0 
mysql-server-8.0:
  Installed: 8.0.30-0ubuntu0.22.04.1
  Candidate: 8.0.30-0ubuntu0.22.04.1
  ...

# MariaDB 10.6 is not installed:
$ apt-cache policy mariadb-server-10.6 
mariadb-server-10.6:
  Installed: (none)
  Candidate: 1:10.6.7-2ubuntu1.1
  ...

# Attempt to install MariaDB 10.6:
$ sudo apt install mariadb-server-10.6 
...
The following additional packages will be installed:
  galera-4 gawk libconfig-inifiles-perl libdbd-mysql-perl libdbi-perl
  libsigsegv2 libterm-readkey-perl mariadb-client-10.6
  mariadb-client-core-10.6 mariadb-server-core-10.6
...
# MySQL packages are removed:
The following packages will be REMOVED:
  mysql-client-8.0 mysql-client-core-8.0 mysql-server mysql-server-8.0
  mysql-server-core-8.0
...

我从未听过有人对此给出充分的理由。MySQL 和 MariaDB 非常相似,但这并不意味着它们不能共存。事实上,MySQL 本身的多个版本可以共存于同一台机器上,正如MySQL. 并且正如玛拉雅数据库,没有理由这些版本中的一个不能是 MariaDB 的一个实例。

因此,如果没有根本原因导致我不能同时安装 MySQL 和 MariaDB,为什么 Apt 坚持将它们视为互斥的?

答案1

您可以拥有多个 MySQL,但只能使用 apt 安装一个。通过 apt 安装 MariaDB 与 MySQL 安装相同:MariaDB 是嵌入式替代品,两者使用相同的库名称和文件(在和中/var/lib/mysql/etc/mysql/my.conf。也许将来这种情况可能会改变。

但是,就像您可以在 /opt 等中安装更多版本的 MySQL,甚至可以使用另一个端口同时运行它们一样,您也可以将多个 MariaDB 添加到 /opt 中的所有 MySQL 安装中并使用其自己的端口。或者使用同一端口安装多个 MariaDB,每次只激活一个。

相关内容