mysql.service是丢失的,但是显示在列表上-失败安装

b09cbbtk  于 2023-03-07  发布在  Mysql
关注(0)|答案(2)|浏览(138)

我用的是Ubuntu 17.04
长话短说,在与MariaDB斗争了一段时间后,我遵循了一些关于如何从我的家庭服务器上 * 完全 * 删除MySQL和MariaDB的有问题的建议。现在我无法重新安装mysql-server。当我尝试时,我得到了这个错误:

Failed to stop mysql.service: Unit mysql.service not loaded.
invoke-rc.d: initscript mysql, action "stop" failed.
invoke-rc.d returned 5
There is a MySQL server running, but we failed in our attempts to stop it.
Stop it yourself and try again!

所以我用sudo service --status-all | grep mysql检查服务,果然...

[ - ]  mysql

问题是当我尝试sudo service mysql status

Unit mysql.service could not be found.

我真的很想得到MySQL安装和工作,而不做一个干净的安装!任何帮助是赞赏。

carvr3hs

carvr3hs1#

看起来我明白了。这没有任何意义,但我明白了。首先,我问dpkg是否还有mysql包:

sudo dpkg --get-selections | grep mysql

什么都没有,所以我检查了MariaDB:

sudo dpkg --get-selections | grep maria

这显示了一些标记为卸载的软件包。

mariadb-client-10.1                             deinstall
mariadb-common                                  deinstall
mariadb-server-10.1                             deinstall

由于apt不合作,我用dpkg -P卸载了每一个,当我这样做并重新启动后,mysql不再被列为服务,mysql-server安装得很好,希望这能节省别人的时间。

e0uiprwp

e0uiprwp2#

dpkg -P的答案对我不起作用,但下面的过程起作用了。
/var/lib/dpkg/info中,您可以找到相关的软件包:

# cd /var/lib/dpkg/info
# ll | grep -i mariadb
# ll | grep -i mysql

这些包有一组后缀,它们是.preinst.prerm等。例如,如果有一个php8.1-mysql.prerm,则可以将其删除为

# dpkg --purge --force-all php8.1-mysql

最后,您将得到mysql-server-8.0,它无法被删除,并在问题中给出错误消息。

if [ -z "${DPKG_ROOT:-}" ] && [ "$1" = remove ] && [ -x "/etc/init.d/mysql" ] ; then
    invoke-rc.d mysql stop || exit 1
fi

问题是卸载未删除/etc/init.d/mysql。请手动删除此文件,卸载将立即完成。
现在你可以安装mysql-server了,这就完成了,但是第一次可能不会安装所有的东西--你必须清除apt缓存,或者类似的东西--我不记得确切的细节了。

相关问题