完全移除MySQL错误。

我正在使用Focal Fossa,并且已经安装了mysql。我试图将其删除并安装mariadb。我尝试了sudo apt-get remove mysql,但是当我执行mysql -V时,我得到的是mysql Ver 8.0.20-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))。然后我尝试了sudo apt-get purge mysql*,但是它显示没有找到匹配项。
我尝试了以下命令,但是得到相同的错误:
sudo apt-get remove mysql-server
Setting up mysql-server-8.0 (8.0.20-0ubuntu0.20.04.1) ...
Failed to stop mysql.service: Unit mysql.service not loaded.
invoke-rc.d: initscript mysql, action "stop" failed.
/var/lib/dpkg/info/mysql-server-8.0.postinst: line 191: /usr/share/mysql-common /configure-symlinks: No such file or directory
dpkg: error processing package mysql-server-8.0 (--configure):
installed mysql-server-8.0 package post-installation script subprocess returned error exit status 127
Errors were encountered while processing:
mysql-server-8.0
E: Sub-process /usr/bin/dpkg returned an error code (1)

当我尝试使用 "sudo dpkg -l | grep mysql" 命令时,结果是:
pi  mysql-client-8.0                           8.0.20-0ubuntu0.20.04.1                     amd64        MySQL database client binaries
ii  mysql-client-core-8.0                      8.0.20-0ubuntu0.20.04.1                     amd64        MySQL database core client binaries
ii  mysql-common                               5.8+1.0.5ubuntu2                            all          MySQL database common files, e.g. /etc/mysql/my.cnf
pF  mysql-server-8.0                           8.0.20-0ubuntu0.20.04.1                     amd64        MySQL database server binaries and system database setup
pi  mysql-server-core-8.0                      8.0.20-0ubuntu0.20.04.1                     amd64        MySQL database server binaries
ii  php7.3-mysql                               7.3.18-1+ubuntu20.04.1+deb.sury.org+1       amd64        MySQL module for PHP
ii  php7.4-mysql

我尝试使用sudo apt-remove mysql*来移除其中的每一个,但是出现了错误。
Removing mysql-server-8.0 (8.0.20-0ubuntu0.20.04.1) ...
Failed to stop mysql.service: Unit mysql.service not loaded.
invoke-rc.d: initscript mysql, action "stop" failed.
dpkg: error processing package mysql-server-8.0 (--remove):
installed mysql-server-8.0 package pre-removal script subprocess returned error exit status 1
dpkg: too many errors, stopping
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
Processing was halted because there were too many errors.
E: Sub-process /usr/bin/dpkg returned an error code (1)

当我尝试运行sudo apt-get -f install时,出现了错误。
Setting up mysql-server-8.0 (8.0.20-0ubuntu0.20.04.1) ...
Failed to stop mysql.service: Unit mysql.service not loaded.
invoke-rc.d: initscript mysql, action "stop" failed.
/var/lib/dpkg/info/mysql-server-8.0.postinst: line 191: /usr/share/mysql-common/configure-symlinks: No such file or directory
dpkg: error processing package mysql-server-8.0 (--configure):
installed mysql-server-8.0 package post-installation script subprocess returned error exit status 127
Errors were encountered while processing:
 mysql-server-8.0
E: Sub-process /usr/bin/dpkg returned an error code (1)

如果有人能帮忙,将不胜感激。

`


@Kulfy 它是 /usr/share/mysql-common/configure-symlinks install mysql "$mysql_cfgdir/mysql.cnf" - Anoop D
@Kulfy 这之后我需要重新启动吗? - Anoop D
是的...........现在该怎么办呢? - Anoop D
抱歉,又出现了同样的错误:( ,实际上并不是同一个错误。重命名已删除key_buffer和myisam-recover选项(如果存在)。sed: 无法读取/etc/mysql/mysql.conf.d/mysqld.cnf:没有这个文件或目录。 - Anoop D
我之前已经尝试过了,但是出现了相同的错误(子进程),我会再试一次。无法停止mysql.service:Unit mysql.service未加载。 invoke-rc.d: initscript mysql, action "stop" failed. dpkg: error processing package mysql-server-8.0 (--purge): installed mysql-server-8.0 package pre-removal script subprocess returned error exit status 1 - Anoop D
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 - Anoop D
创建了文件,但仍然出现子进程错误。当我输入mysql时,我得到的是RROR 2002 (HY000): 无法通过套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器(2) - Anoop D
让我们在聊天中继续这个讨论。 - Kulfy
4个回答

帮助到我的是什么

sudo systemctl disable mysql

然后之后删除/清除或者其他。
sudo apt autoremove 

做完了它的工作... 完成了

4systemctl disable mysql然后aptitude purge mysql-community-server对我来说起了作用。 - lepe
这真的帮了很大的忙。 - Sohan Arafat

你需要采取的行动: 1. 获取所有与mysql相关的组件 2. 卸载所有已安装的mysql组件 3. 清理安装目录(如果需要保留旧数据,可以将文件夹重命名)
我发现使用yum更好的方法:
yum list installed | grep mysql
yum remove mysql-client mysql-server mysql-common mysql-devel

apt-get的方式:
sudo apt-get remove --purge mysql*
sudo apt-get purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get remove dbconfig-mysql
sudo apt-get dist-upgrade

删除数据和配置

rm -rf /var/lib/mysql/
rm -rf /etc/my.cnf

我不认为在这里需要使用sudo apt-get dist-upgrade - Walty Yeung

在我的情况下,一个损坏的MySQL实例仍在运行。我使用以下命令将其终止:
sudo pkill mysql
sudo pkill mysqld

然后它就正常工作了。

遇到了同样的问题,花了一整天的时间来解决它...试试这个方法:
dpkg -r mysql-server
dpkg -r mysql-client-8.0(your version of mysql)
dpkg -r mysql-server-8.0(your version of mysql)
dpkg -r mysql-common
dpkg -r mysql

好的...问题解决了...关键是,当你卸载或清除mysql时,所有的依赖项都留在那里,而且每一个依赖项都依赖于其他项,所以你必须找到其他项所依赖的第一个项...