
我正在嘗試重新安裝 mysql-server-5.6,但我無能為力,每次我都會收到以下奇怪的訊息:
root@ps****:/home/nikitasorokin# apt-get remove --purge mysql-server-5.6
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
mysql-client-core-5.6
Use 'apt-get autoremove' to remove it.
The following packages will be REMOVED:
mysql-server-5.6*
0 upgraded, 0 newly installed, 1 to remove and 941 not upgraded.
1 not fully installed or removed.
After this operation, 52.5 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 122623 files and directories currently installed.)
Removing mysql-server-5.6 (5.6.25-0ubuntu1) ...
stop: Unknown instance:
invoke-rc.d: initscript mysql, action "stop" failed.
dpkg: error processing package mysql-server-5.6 (--purge):
subprocess installed pre-removal script returned error exit status 1
stop: Unknown instance:
invoke-rc.d: initscript mysql, action "stop" failed.
start: Job failed to start
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error while cleaning up:
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
mysql-server-5.6
E: Sub-process /usr/bin/dpkg returned an error code (1)
我知道,主要建議是完全卸載 mysql 及其所有元件,但我不能這樣做。請問您能考慮一下什麼解決方法嗎?
答案1
編輯
post-installation
腳本sudo nano /var/lib/dpkg/info/mysql-server-5.6.postinst
搜尋功能
invoke() { if [ -x /usr/sbin/invoke-rc.d ]; then invoke-rc.d mysql $1 else /etc/init.d/mysql $1 fi }
並替換為
invoke() { echo #if [ -x /usr/sbin/invoke-rc.d ]; then # invoke-rc.d mysql $1 #else # /etc/init.d/mysql $1 #fi }
儲存檔案
編輯
pre-removal
腳本sudo nano /var/lib/dpkg/info/mysql-server-5.6.prerm
搜尋線路
if [ -x "/etc/init.d/mysql" ] || [ -e "/etc/init/mysql.conf" ]; then invoke-rc.d mysql stop || exit $? fi
並替換
if [ -x "/etc/init.d/mysql" ] || [ -e "/etc/init/mysql.conf" ]; then echo #invoke-rc.d mysql stop || exit $? fi
編輯
post-removal
腳本sudo nano /var/lib/dpkg/info/mysql-server-5.6.postrm
搜尋
# New packaging paradigm for my.cnf as of Dec-2014 for sharing mysql # variants in Ubuntu. case "$1" in remove|disappear) /usr/share/mysql-common/configure-symlinks remove mysql "$mysql_cfgdir/mysql.cnf" ;; esac
並替換
# New packaging paradigm for my.cnf as of Dec-2014 for sharing mysql # variants in Ubuntu. case "$1" in remove|disappear) # /usr/share/mysql-common/configure-symlinks remove mysql "$mysql_cfgdir/mysql.cnf" ;; esac
儲存檔案並再次運行命令
sudo apt-get remove --purge mysql-server-5.6