mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)

情景一

安装mysql的时候出现如下问题

E: Sub-process /usr/bin/dpkg returned an error code (1)
gaokaoli@kkjz-ThinkStation-P330:~/mysql-server$ sudo apt-get install mysql-server
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
mysql-server 已经是最新版 (8.0.27-0ubuntu0.20.04.1)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 55 个软件包未被升级。
有 2 个软件包没有被完全安装或卸载。
解压缩后会消耗 0 B 的额外空间。
您希望继续执行吗? [Y/n] y
正在设置 mysql-server-8.0 (8.0.27-0ubuntu0.20.04.1) ...
update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在
dpkg: 处理软件包 mysql-server-8.0 (--configure)时出错:
 已安装 mysql-server-8.0 软件包 post-installation 脚本 子进程返回错误状态 2
dpkg: 依赖关系问题使得 mysql-server 的配置工作不能继续:
 mysql-server 依赖于 mysql-server-8.0;然而:
  软件包 mysql-server-8.0 尚未配置。

dpkg: 处理软件包 mysql-server (--configure)时出错:
 依赖关系问题 - 仍未被配置
因为错误消息指示这是由于上一个问题导致的错误,没有写入 apport 报告。
                                                                    在处理时有错误发生:
 mysql-server-8.0
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

截图如下:
在这里插入图片描述
找了网上很多资料或者说明
都是没有一个好的解决方法,要么让你删除卸载,但是卸载不干净不完全,在安装的话,又会缺少一些依赖包以来插件,导致一直无法安装的问题

解决方法

彻底卸载干净并且不要留着其他依赖包以及其他东西

卸载以往的版本

  • sudo apt-get remove --purge mysql-\*
    在这里插入图片描述

  • sudo apt-get autoremove --purge mysql-server
    在这里插入图片描述

  • sudo apt-get remove mysql-common
    在这里插入图片描述

清除数据,缓存等

  • dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
    在这里插入图片描述

  • 查看MySQL的剩余依赖项:dpkg --list|grep mysql
    在这里插入图片描述

  • 继续删除剩余依赖项,如:sudo apt-get autoremove --purge mysql-apt-config

  • 更新软件源库:sudo apt-get update

卸载完毕之后就是安装新的mysql环境版本了:

  • sudo apt install mysql-server

  • mysql --version //显示版本号

安装完成后测试登录

  • mysql -u root -p

情景二

错误描述如下:

2 个软件包没有被完全安装或卸载。
解压缩后会消耗 0 B 的额外空间。
您希望继续执行吗? [Y/n] y
正在设置 mysql-server-5.7 (5.7.24-0ubuntu0.16.04.1) ...
mysql_upgrade: Got error: 2002: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) while connecting to the MySQL server
Upgrade process encountered error and will not continue.
mysql_upgrade failed with exit status 11
dpkg: 处理软件包 mysql-server-5.7 (--configure)时出错:
 子进程 已安装 post-installation 脚本 返回错误状态 1
dpkg: 依赖关系问题使得 mysql-server 的配置工作不能继续:
 mysql-server 依赖于 mysql-server-5.7;然而:
  软件包 mysql-server-5.7 尚未配置。

解决方法

具体的执行方案如下:

  • 将info文件夹更名, sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old

  • 新建一个新的info文件夹,sudo mkdir /var/lib/dpkg/info
    -更新源,为了下面安装的包,sudo apt-get update

  • 安装f的依赖,sudo apt-get -f install
    //执行完上一步操作后

  • 依赖的东西会在新的info文件夹下生成文件,sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old

  • info文件夹删掉,sudo rm -rf /var/lib/dpkg/info

  • info文件夹重新改回名字,sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info

截图如下:
在这里插入图片描述
在这里插入图片描述


版权声明:本文为weixin_47872288原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。