mysql-server-8.0 错误阻止 apt 安装

mysql-server-8.0 错误阻止 apt 安装

很久之后,我尝试更新 Ubuntu 20.04,但由于某些 MySQL 错误而失败。我在网上搜索,建议的答案是rmmysql 目录。我照做了,但仍然没有解决问题。

我试过了dpkg --remove --force-all mysql-server-8.0,但是它说:

Unit mysql.service could not be found. dpkg: error while cleaning up:  
...post-installation script subprocess returned error

apt purge/upgrade/remove 失败,

The package mysql-server-8.0 needs to be reinstalled

我不记得安装过 MySQL,但即使我安装了,我也不需要 MySQL。我根本不关心它。我怎样才能彻底清除 MySQL 并让 apt 再次工作?

test@ubuntu:~$ sudo apt install --reinstall mysql-server-8.0 
Reading package lists... Done 
Building dependency tree
Reading state information... Done
E: The package mysql-server-8.0 needs to be reinstalled, but an archive for it can't be found.
test@ubuntu: $ sudo apt purge mysql-server-8.0
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: The package mysql-server-8.0 needs to be reinstalled, but an archive for it can't be found.
test@ubuntu:~$ sudo apt install mysql-server --reinstall
Reading state information... Done
Reading package lists... Done 
Building dependency tree 
E: The package mysql-server-8.0 needs to be reinstalled, but an archive for it can't be found. 

~$ sudo apt purge mysql-server-core-8.0 -f
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  galera-3 libaio1 libcgi-fast-perl libcgi-pm-perl libconfig-inifiles-perl
  libevent-core-2.1-7 libevent-pthreads-2.1-7 libfcgi-perl
  libhtml-template-perl libllvm10 libllvm11 libmecab2 libreadline5
  libterm-readkey-perl linux-headers-5.4.0-42 linux-headers-5.4.0-42-generic
  linux-image-5.4.0-42-generic linux-modules-5.4.0-42-generic
  linux-modules-extra-5.4.0-42-generic mecab-ipadic mecab-ipadic-utf8
  mecab-utils socat
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED
  mysql-server-8.0* mysql-server-core-8.0*
0 to upgrade, 0 to newly install, 2 to remove and 3 not to upgrade.
1 not fully installed or removed.
After this operation, 137 MB disk space will be freed.
Do you want to continue? [Y/n] 
dpkg: error processing package mysql-server-8.0 (--remove):
 package is in a very bad inconsistent state; you should
 reinstall it before attempting a removal
dpkg: too many errors, stopping
Errors were encountered while processing:
 mysql-server-8.0
Processing was halted because there were too many errors.
E: Sub-process /usr/bin/dpkg returned an error code (1)

$ sudo dpkg -i --force-all mysql-server-8.0_8.0.27-0ubuntu0.20.04.1_amd64.deb
(Reading database ... 471728 files and directories currently installed.)
Preparing to unpack mysql-server-8.0_8.0.27-0ubuntu0.20.04.1_amd64.deb ...
Failed to stop mysql.service: Unit mysql.service not loaded.
invoke-rc.d: initscript mysql, action "stop" failed.
dpkg: warning: old mysql-server-8.0 package pre-removal script subprocess returned error exit status 1
dpkg: trying script from the new package instead ...
Failed to stop mysql.service: Unit mysql.service not loaded.
invoke-rc.d: initscript mysql, action "stop" failed.
dpkg: error processing archive mysql-server-8.0_8.0.27-0ubuntu0.20.04.1_amd64.deb (--install):
 new mysql-server-8.0 package pre-removal script subprocess returned error exit status 1
Failed to stop mysql.service: Unit mysql.service not loaded.
invoke-rc.d: initscript mysql, action "stop" failed.
Failed to preset unit: File mysql.service: Link has been severed
/usr/bin/deb-systemd-helper: error: systemctl preset failed on mysql.service: No such file or directory
Failed to start mysql.service: Unit mysql.service not found.
invoke-rc.d: initscript mysql, action "start" failed.
Unit mysql.service could not be found.
dpkg: error while cleaning up:
 installed mysql-server-8.0 package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 mysql-server-8.0_8.0.27-0ubuntu0.20.04.1_amd64.deb

答案1

如果您找不到 Mysql 的存档,请尝试手动安装该存档。

首先,尝试下载 deb 文件是否有效:

sudo apt download mysql-server-8.0

现在,使用dpkg编译档案:

sudo dpkg -i --force-all ./*.deb

如果上述方法不起作用,请尝试:

首先,点击这里,然后 deb 文件就会开始下载。

之后使用dpkg -i命令安装.deb文件。

我不确定,但您也可以运行以下命令来下载 deb 并安装它:

wget https://dev.mysql.com/get/mysql-apt-config_0.8.20-1_all.deb && sudo dpkg -i *.deb

之后,运行上述代码:

sudo apt install mysql-server-8.0

如果上述方法不起作用那么purgeMySQL:

sudo dpkg -P mysql*

以下是删除 MySQL 的另一种方法:

sudo mv /var/lib/dpkg/info/mysql* ~/ && sudo apt -f install

如果以上方法均无效,那么最后要尝试的是:

首先,将内容改为/etc/apt/sources.list

deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse

deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse

deb http://archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse

deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse

deb http://archive.canonical.com/ubuntu focal partner
deb-src http://archive.canonical.com/ubuntu focal partner

apt update然后运行:

sudo apt download mysql-server-8.0
sudo dpkg -i --force-all ./*.deb

如果这也不起作用那么

如果上述方法不起作用那么我建议重新安装 Ubuntu。

相关内容