MySQL-Server kann unter Ubuntu 12.04.5 TLS nicht gelöscht werden

MySQL-Server kann unter Ubuntu 12.04.5 TLS nicht gelöscht werden

Ich versuche, MySQL-Server 5.6 neu zu installieren, kann aber nichts tun und erhalte jedes Mal diese seltsame Meldung:

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)

Ich weiß, dass die wichtigste Empfehlung darin besteht, MySQL und alle seine Komponenten vollständig zu deinstallieren, aber das kann ich nicht. Können Sie sich bitte eine Lösung vorstellen?

Antwort1

  1. Bearbeiten des post-installationSkripts

    sudo nano /var/lib/dpkg/info/mysql-server-5.6.postinst
    
  2. Suche die Funktion

    invoke() {
        if [ -x /usr/sbin/invoke-rc.d ]; then
            invoke-rc.d mysql $1
        else
            /etc/init.d/mysql $1
        fi
    }
    

    und ersetzen durch

    invoke() {
        echo
        #if [ -x /usr/sbin/invoke-rc.d ]; then
        #     invoke-rc.d mysql $1
        #else
        #     /etc/init.d/mysql $1
        #fi
    }
    
  3. Speicher die Datei

  4. Bearbeiten des pre-removalSkripts

    sudo nano /var/lib/dpkg/info/mysql-server-5.6.prerm
    
  5. Suche die Zeilen

    if [ -x "/etc/init.d/mysql" ] || [ -e "/etc/init/mysql.conf" ]; then
            invoke-rc.d mysql stop || exit $?
    fi
    

    und ersetzen

    if [ -x "/etc/init.d/mysql" ] || [ -e "/etc/init/mysql.conf" ]; then
            echo
            #invoke-rc.d mysql stop || exit $?
    fi
    
  6. Bearbeiten des post-removalSkripts

    sudo nano /var/lib/dpkg/info/mysql-server-5.6.postrm
    
  7. Suchen

    # 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
    

    und ersetzen

    # 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
    
  8. Speichern Sie die Datei und führen Sie den Befehl erneut aus

    sudo apt-get remove --purge mysql-server-5.6
    

verwandte Informationen