Dar*_*rks 1 mysql package-management apt 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
...
Run Code Online (Sandbox Code Playgroud)
我从未听过有人为此给出充分的理由。MySQL 和 MariaDB 非常相似,但这并不自动排除它们共存。事实上,MySQL 本身的多个版本可以在同一台机器上共存,正如MySQL所解释的那样。正如MariaDB所解释的,这些多个版本之一没有理由不能成为 MariaDB 的实例。
那么,如果没有根本原因我不能同时安装 MySQL 和 MariaDB,为什么 Apt 坚持将它们视为互斥的呢?
您可以拥有多个 MySQL,但使用 apt 只能安装一个。通过 apt MariaDB 安装与 MySQL 安装相同:MariaDB 是直接替代品,两者使用相同的库名称和文件(在/var/lib/mysql
和中/etc/mysql/my.conf
)。也许将来这种情况可能会改变。
但是,就像您可以在 /opt 中安装更多版本的 MySQL 一样,甚至可以使用另一个端口同时运行这些版本,您也可以将多个 MariaDB 添加到 /opt 中的所有 MySQL 安装中并使用其自己的端口。或者使用同一端口安装多个端口,一次只有 1 个活动端口。