dpkg:错误处理包mysql-server

She*_*zod 8 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)
Run Code Online (Sandbox Code Playgroud)

这是什么意思.有任何想法吗?

Zay*_*try 10

这应该有帮助

sudo apt-get purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get dist-upgrade
Run Code Online (Sandbox Code Playgroud)

现在重新安装mysql

sudo apt-get install mysql-server
Run Code Online (Sandbox Code Playgroud)


wbh*_*ing 9

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

经过相当长的时间寻找答案后,我找到了一个解决方案,如果其他人已经有一个可用的 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) ...
Run Code Online (Sandbox Code Playgroud)

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


小智 8

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
Run Code Online (Sandbox Code Playgroud)

这应该可以解决当前的问题。但是将来,请小心添加的软件包名称,sudo apt-get install 因为错误的软件包名称列表(例如,列表中的多余条目)会导致无法安装其中一个软件包,甚至更糟-您甚至可能会发现自己陷入了困境。 #DEPENDENCY-HELL的地狱深度

  • 我喜欢你在其他所有事情之前运行“apt clean”的方式,这应该得到传播。太多教程说要清除软件包,“apt update”或强制安装等,然后运行“apt autoclean”,这有时是毫无意义的(向后和/或效率较低),因为在继续之前应该清空软件包缓存重新安装等等 (4认同)
  • `sudo apt-get install mysql-server-5.7` 应该由 `sudo apt-get install -f` 完成,不是吗?至少在我的机器上是这样。 (2认同)

Tes*_*son 6

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

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

尝试:

1)在任何apt-upgrade之前手动停止mysql

sudo /etc/init.d/mysql stop
Run Code Online (Sandbox Code Playgroud)

2)修复:

sudo dpkg --configure mysql-server-X.X
Run Code Online (Sandbox Code Playgroud)

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

3)检查:

sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)

如果 mysql 不是由 apt 启动的,则手动启动它。

  • 你说得对。我在 Google 云计算中使用了 VPN 1.5 GB 内存,可以正常工作。但不适用于 < 1 GB 的免费套餐 (2认同)

小智 5

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

我所做的是这个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
Run Code Online (Sandbox Code Playgroud)