dpkg: 处理包 mysql-server 时出错(依赖问题)?

dpkg: error processing package mysql-server (dependency problems)?

当我尝试安装 mysql-server 时,出现如下错误:

dpkg: error processing package mysql-server (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
 mysql-server-5.7
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

这是什么意思。有什么想法吗?

这应该有帮助

sudo apt-get purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get dist-upgrade

现在重新安装 mysql

sudo apt-get install mysql-server

dpkg 返回错误代码 1 并不意味着任何特定内容,但通常与依赖性问题有关。在您的情况下,您尝试安装同一包的两个 versions/instances,即 mysql-servermysql-server-5.7。因此,请执行以下操作以消除任何冗余依赖性问题并安装功能正常的 mysql 程序包

sudo apt-get clean
sudo apt-get purge mysql*
sudo apt-get update
sudo apt-get install -f
sudo apt-get install mysql-server-5.7
sudo apt-get dist-upgrade

这应该可以解决手头的问题。但是将来,请注意您在 sudo apt-get install 之后添加的软件包名称,因为错误的软件包名称列表 - 例如列表中的冗余条目 - 会导致无法安装任何一个软件包或更糟 - 你甚至可能发现自己涉足#DEPENDENCY-HELL

的地狱般的深渊

要解决依赖问题,尝试:

sudo apt-get purge
sudo apt-get clean
sudo apt-get check

并通过以下方式重新安装软件包:sudo apt-get install mysql-server

来源:Thread: Dpkg: Dependency problems - leaving unconfigured.

要尝试的其他命令:

sudo apt-get install -f
sudo apt-get autoremove
sudo dpkg --configure -a 

相关:How can I Resolve dpkg dependency? 问 Ubuntu

如果您使用的是 VPS 或类似设备,您的错误可能是由于内存不足。

运行 apt-upgrade 似乎需要一些 RAM,因此它可能会强制关闭 mysql,因此问题是从错误中恢复。

尝试:

1) 在任何 apt-upgrade

之前手动停止 mysql
sudo /etc/init.d/mysql stop

2) 修复:

sudo dpkg --configure mysql-server-X.X

(如果版本未知,仅使用 mysql-server 查找(不会修复错误)

3) 检查:

sudo apt-get upgrade

如果不是由 apt 启动,请手动启动 mysql。

问题可以简单得多(在我的例子中)我的配置文件 [my.cnf] 中有一个配置错误的值导致了错误。 清理后my.cnfmysql-服务器重启成功

我的回答来自 askubuntu

None apt 方法对我有用,试试这个:

查找锁定进程

$ ps -eaf
root      7316     1  0 00:19 ?        00:00:00 /usr/bin/dpkg --status-fd 35 --configure --pending
root      7808  7316  0 00:19 ?        00:00:00 /usr/bin/perl -w /usr/share/debconf/frontend /var/lib/dpkg/info/mysql-se
root      7817  7808  0 00:19 ?        00:00:00 /bin/bash /var/lib/dpkg/info/mysql-server-5.7.postinst configure
mysql     7973  7817  0 00:20 ?        00:00:00 mysqld --user=mysql --init-file=/var/lib/mysql-files/tmp.iNyY06ty0K --so

干掉它

sudo kill -9 7973,基本上是mysql一个。

现在清除

sudo apt-get purge mysql-server-5.7 # Or whatever you are trying to purge.

我遇到了类似的问题。这就是我修复我的方法。

  1. 重启MySQL服务sudo service mysql restart
  2. 然后修复损坏的安装 sudo apt install -f

我遇到了同样的情况。完全删除 MySQL 后,我重新安装了它,使用端口 3306 杀死了 PID,然后再次重新安装了 MySQL。现在可以使用了。

我为这个问题找到的所有答案都是 "purge your Mysql install and re-install it." 的形式,但就我而言,我已经安装了 working/active Mysql。对我来说,dpkg --configure -a 失败的原因是因为 Mysql 已经安装。为什么 dpkg 认为安装后脚本需要 运行 对于我已经安装和升级的 Mysql 我可能永远不知道,但它确实如此。

经过相当长的时间寻找答案后,我找到了一个解决方案,如果其他人已经在使用 Mysql 5.7 并且只是想绕过这个虚假的安装后脚本,那么该解决方案应该可行。您可以直接编辑安装后脚本(在 Ubuntu 上):

sudo vi /var/lib/dpkg/info/mysql-server-5.7.postinst

然后,在第二行,只需添加 exit 0,然后再次添加 运行 dpkg,您应该得到如下内容:

$ sudo dpkg --configure -a         
Setting up mysql-server-5.7 (5.7.28-0ubuntu0.18.04.4) ...

如果您的 Mysql 安装之前没有完成,您肯定不想按照这些说明进行操作(安装后脚本坚持 运行ning 是有原因的)。但是对于那些最终可能会像我一样以不稳定状态使用 dpkg 的人来说,上面的内容可以为您节省大量时间来清除和重新安装已经工作的 Mysql.

版本。

如果您使用的是 Debian 10,则需要先安装 GNUPG:

sudo apt-get install gnupg

就这些;现在你可以再试一次 dpkg

我几乎尝试了所有可能的方法,但没有任何方法适合我。然后我发现我面临的问题是由于可用内存较少。您可以通过 free -h 检查您当前的 ram 状态(在我的情况下可用的内存小于 1 GB)。要清除 ram,请重新启动您的设备。然后键入以下命令

sudo apt-get purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get dist-upgrade

然后通过

再次安装mysql-server
sudo apt-get install mysql-server

由于我从 ubuntu 18.04 升级到 ubuntu 20.04 时出现问题,我面临同样的错误,我所做的是获取 mariadb 而不是当你做 pruge mysql 时确保如果要求您删除目录中的数据库 告诉它不要删除数据库,这样你的旧数据库就不会丢失数据

我做的就是这个命令

sudo apt-get purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get dist-upgrade
sudo apt-get install mariadb-server

使用 aptitude 尝试此解决方案,这将替换所有损坏的文件。

这是在我的 18.04 上工作的

cr。 https://www.digitalocean.com/community/questions/mysql-installation-error-dpkg-error-processing-package-mysql-server-5-5-configure?answer=61604

在我的情况下,我必须 运行:

systemctl stop mysql.service

在能够安装 mysql 之前停止 MySQL 使用:

sudo apt-get install mysql-server

还要注意您正在使用的终端,如果是 ZSH,许多卸载命令将无法正常工作,例如:sudo apt-get purge mysql* 并且重新安装过程将失败,要解决此问题,只需在您的终端中键入单词 bash 以便使用的终端是 Bash、运行 再次使用 sudo apt-get purge mysql* 命令以及下面的以下命令以确认您已删除所有内容。

sudo apt-get remove mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql

最后,运行 mysql --version确认你的机器上没有版本,你可以重新安装。