![为什么 Ubuntu 禁止通过 Apt 安装 MySQL 和 MariaDB?](https://linux22.com/image/1027854/%E4%B8%BA%E4%BB%80%E4%B9%88%20Ubuntu%20%E7%A6%81%E6%AD%A2%E9%80%9A%E8%BF%87%20Apt%20%E5%AE%89%E8%A3%85%20MySQL%20%E5%92%8C%20MariaDB%EF%BC%9F.png)
我见过让用户(包括我自己)困惑的事情是 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,每次只激活一个。