【问题标题】:dpkg: error processing package mysql-server (dependency problems)?dpkg:错误处理包mysql-server(依赖问题)?
【发布时间】:2017-04-17 06:22:23
【问题描述】:

当我尝试安装 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)

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

【问题讨论】:

    标签: mysql ubuntu dpkg


    【解决方案1】:

    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 的地狱深处涉水

    【讨论】:

    • 我喜欢你首先运行apt clean 的方式,这应该被宣传。太多的教程说要清除软件包,apt update 或强制安装等,然后再运行 apt autoclean,这有时是没有意义的(向后和/或效率较低),因为在重新安装之前应该清空软件包缓存,等等……
    • sudo apt-get install mysql-server-5.7 应该由sudo apt-get install -f 完成,不是吗?至少在我的机器上是这样的。
    • 如果服务器内存不足,请进一步查看 VPS 答案。 (运行 mysql + apt upgrade => mysql 崩溃)
    【解决方案2】:

    我能找到的关于这个问题的所有答案都是“清除您的 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) ...
    

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

    【讨论】:

    • 这解决了我的问题,谢谢!我在升级中遇到了 ssh 崩溃,就像一个假人没有使用屏幕。所以当我重新登录时,安装后不想工作。
    • 看来原来的问题(错误信息)是一个普遍的问题。对我来说,这个答案是解决问题的答案。清理所有内容并重新安装并不能解决我的问题,并引入了恢复数据库的额外任务。
    【解决方案3】:

    这应该会有所帮助

    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
    

    【讨论】:

      【解决方案4】:

      如果您使用的是 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。

      【讨论】:

      • 你说得对。我在谷歌云计算中使用了 VPN 1.5 GB 内存。但不是免费层
      【解决方案5】:

      我的回答来自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.
      

      【讨论】:

        【解决方案6】:

        我遇到了类似的问题。我就是这样修的。

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

        【讨论】:

          【解决方案7】:

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

          这是我 18.04 的工作

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

          【讨论】:

            【解决方案8】:

            要解决依赖问题,试试:

            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? at 询问 Ubuntu

            【讨论】:

              【解决方案9】:

              问题可能要简单得多(在我的情况下)我的配置文件 [my.cnf] 中有一个错误配置的值,这会导致错误。 清理完my.cnf mysql-server 重启成功

              【讨论】:

                【解决方案10】:

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

                sudo apt-get install gnupg
                

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

                【讨论】:

                  【解决方案11】:

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

                  【讨论】:

                    【解决方案12】:

                    由于我从 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
                    

                    【讨论】:

                      【解决方案13】:

                      就我而言,我必须运行:

                      systemctl stop mysql.service
                      

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

                      sudo apt-get install mysql-server
                      

                      【讨论】:

                        【解决方案14】:

                        还要注意您使用的终端,如果是 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 以确保您的机器上没有版本,您可以尝试重新安装。

                        【讨论】:

                          【解决方案15】:

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

                          【讨论】:

                            猜你喜欢
                            • 2016-06-07
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 2012-06-29
                            • 2015-01-29
                            • 1970-01-01
                            相关资源
                            最近更新 更多