我正在尝试在我的 Ubuntu 22.04 LTS 上安装 mysql 服务器,但无法做到这一点,它说未满足依赖项,我尝试安装所需的依赖项,但没有成功。
sudo apt install mysql-server
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
mysql-common : Conflicts: mysql-server-8.0 but 8.0.29-0ubuntu0.22.04.2 is to be installed
mysql-server-8.0 : Depends: mysql-client-8.0 (>= 8.0.29-0ubuntu0.22.04.2) but it is not installable
Depends: mysql-server-core-8.0 (= 8.0.29-0ubuntu0.22.04.2) but it is not installable
E: Unable to correct problems, you have held broken packages.
答案1
发生这种情况的最常见原因之一是您的系统上安装了一些旧的 MySQL 或 MariaDB 软件包。MariaDB 是 MySQL 的替代品,两者都使用相同的库名称和文件(在和中/var/lib/mysql
)/etc/mysql/my.conf
。查看此帖子:为什么 Ubuntu 禁止通过 apt 安装 MySQL 和 MariaDB?了解更多详情。您可以进行一些清理并尝试再次安装 MySQL 服务器。
要检查这是否是你的问题,请运行:
apt list --installed | grep mysql
apt list --installed | grep mariadb
寻找mysql-server
、、和mysql-client
其他类似的包。mariadb-server
mariadb-client
如果要安装 MySQL,则必须卸载这些。您可以逐个手动删除它们,也可以使用apt
通配符 ( *
),如下所示:
sudo apt remove mysql*
sudo apt remove mariadb*
sudo apt autoremove
安装 MySQL 服务器:
sudo apt install mysql-server
答案2
使用aptitude
而不是apt-get
。如果你的机器上还没有aptitude
,请使用以下命令获取:
sudo apt-get install aptitude
然后运行:
sudo aptitude install mysql-server
在提示中,您不应该接受第一个解决方案(输入n
)来强制重新加载依赖项。
答案3
概述
问题似乎出在第一次安装失败后文件系统中残留的一些部分初始化。因此,解决方案基本上就是确保清除安装失败期间添加或修改的所有内容。
我没有时间进行深入研究,所以我不知道究竟是哪些文件导致了这个问题,但如果有人可以提供更多见解,请在下面评论,以便为未来需要更细致解决方案的读者提供帮助。
我能够按照如下所述在 Ubuntu 22.04 上解决此问题,使用arief21 的解决方案20.04 上也有类似问题,它本身就是从这里。
清除相关包
- 确保 MySQL 没有运行:
sudo systemctl stop mysql
- 然后清除所有 MySQL 包:
sudo apt purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*
- 然后删除所有 MySQL 文件:
sudo rm -rf /etc/mysql /var/lib/mysql /var/log/mysql
- 最后清理所有不需要的包:
sudo apt autoremove
sudo apt autoclean
- 在继续之前重启一下也没什么坏处
sudo reboot
现在,所有残留的配置问题都已被清除,您应该能够再次运行安装命令。
MySQL Apt 软件包说明
我也读过这里有些人在安装时遇到问题mysql-server
在 Jammy 上,建议安装特定的mysql-server-8.0
和mysql-server-core-8.0
软件包。我不能 100% 确定这个事实,因为mysql-server
在完全清除之后我没有再尝试元软件包。
sudo apt install mysql-server-core-8.0 mysql-server-8.0
希望这可以帮助!