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-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
的地狱般的深渊
要解决依赖问题,尝试:
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.
我遇到了类似的问题。这就是我修复我的方法。
- 重启MySQL服务
sudo service mysql restart
- 然后修复损坏的安装
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 上工作的
在我的情况下,我必须 运行:
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
确认你的机器上没有版本,你可以重新安装。
当我尝试安装 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-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
要解决依赖问题,尝试:
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
之前手动停止 mysqlsudo /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.
我遇到了类似的问题。这就是我修复我的方法。
- 重启MySQL服务
sudo service mysql restart
- 然后修复损坏的安装
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-serversudo 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 上工作的
在我的情况下,我必须 运行:
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
确认你的机器上没有版本,你可以重新安装。