当我尝试安装错误时,就像:
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)
这是什么意思。有什么想法吗?
答案 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-server
和mysql-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
之前手动停止mysqlsudo /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)
我有一个类似的问题。这就是我的固定方法。
sudo service mysql restart
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版的工作
答案 12 :(得分:0)
就我而言,我必须运行:
systemctl stop mysql.service
在能够正确安装 mysql 之前停止 MySQL 使用:
sudo apt-get install mysql-server
答案 13 :(得分:-1)
我当时处在同样的情况。完全删除MySQL之后,我重新安装了它,使用端口3306杀死了PID,然后再次重新安装了MySQL。现在正在工作。