情景一
安装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
截图如下: