dpkg:错误处理包mysql-server

时间:2017-04-17 06:22:23

标签: mysql ubuntu dpkg

当我尝试安装错误时,就像:

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)

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

14 个答案:

答案 0 :(得分:6)

对于该问题,我能找到的所有答案都是“清除Mysql安装并重新安装”的形式。但就我而言,我已经有一个有效/活动的Mysql安装程序。对我来说,dpkg --configure -a失败的原因是因为已经安装了Mysql。为什么dpkg认为需要为我可能永远不知道的我已经安装并升级的Mysql运行后安装脚本,但是确实如此。

经过大量的时间寻找答案之后,我找到了一个解决方案,该解决方案如果已经有其他人已经在使用Mysql 5.7并且只想跳过这个假的postinstall脚本,那么该解决方案应该可以使用。您可以直接在(在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安装,则您绝对不希望遵循这些说明(这是postinstall脚本坚持运行的原因)。但是对于像我这样可能以dpkg处于不稳定状态的用户,以上内容可以为您节省大量时间来清除和重新安装已经运行的Mysql版本。

答案 1 :(得分:5)

dpkg返回错误代码1并不代表任何具体内容,但通常与依赖性问题有关。在您的情况下,您尝试安装同一个软件包的两个版本/实例,即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

的地狱深处

答案 2 :(得分: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

答案 3 :(得分:1)

如果您使用的是VPS或类似产品,则可能是因为缺少RAM而导致错误。

运行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,请手动启动它。

答案 4 :(得分:0)

要解决依赖性问题,请尝试:

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

答案 5 :(得分:0)

问题可能更简单(就我而言),我的配置文件[my.cnf]中的配置值错误,导致错误。 清理my.cnf后,mysql服务器已成功重启

答案 6 :(得分:0)

我对askubuntu的回答。

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.

答案 7 :(得分:0)

我有一个类似的问题。这就是我的固定方法。

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

答案 8 :(得分:0)

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

sudo apt-get install gnupg

仅此而已;现在您可以再次尝试dpkg

答案 9 :(得分:0)

我几乎尝试了所有可能的方法,但没有任何效果。然后我发现我面临的问题是由于可用的ram减少。您可以通过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

答案 10 :(得分:0)

由于我从ubuntu 18.04升级到ubuntu 20.04的问题,我遇到了同样的错误,我所做的是获取mariadb,同时还要确保在执行pruge mysql时如果要求您删除目录中的dbs 告诉它不要删除数据库,这样您的旧数据库就不会丢失数据

我做的是这个cmds

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

答案 11 :(得分:0)

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

这是我的18.04版的工作

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

答案 12 :(得分:0)

就我而言,我必须运行:

systemctl stop mysql.service

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

sudo apt-get install mysql-server

答案 13 :(得分:-1)

我当时处在同样的情况。完全删除MySQL之后,我重新安装了它,使用端口3306杀死了PID,然后再次重新安装了MySQL。现在正在工作。

screenshot