it-swarm.com.de

Ein Upgrade auf MySQL 5.7.15 stürzt unter Ubuntu 16.04 ab

Letzte Nacht habe ich versucht, mein Ubuntu-Betriebssystem zu aktualisieren, und MySQL 5.7.15 war eine der Änderungen. Das Upgrade scheint erfolgreich zu sein, da mysql ordnungsgemäß funktioniert, aber der Installationsprozess mit dieser Meldung nicht mehr funktioniert:

This installation of MySQL is already upgraded to 5.7.15, 
use --force if you still need to run mysql_upgrade

Ich kann den Installationsvorgang nicht regelmäßig abbrechen und muss ihn nur beenden. Daher kann es zu Problemen kommen und auch bei jeder anderen Installation (in der Zukunft) wird erneut versucht, dies zu tun.

Wie kann dieses Upgrade verhindert oder behoben werden?

12
Omid

Diese Lösung hat mein Problem gelöst:

  1. Sichern Sie Ihre Datenbankdateien mit folgenden Berechtigungen:

    Sudo cp -avt /your/backup/directory /var/lib/mysql /etc/mysql/my.cnf
    
  2. Löschen Sie MySQL-Dateien:

    Sudo rm -rv /etc/mysql 
    
  3. Entfernen Sie MySQL vollständig, indem Sie Folgendes ausführen:

    Sudo apt purge mysql-server mysql-server-5.7 mysql-server-core-5.7 mysql-client-5.7 mysql-client-core-5.7
    

    Die Verwendung von Synaptic wird empfohlen.

  4. Erstellen Sie diese Ordner:

    Sudo mkdir -p /etc/mysql/conf.d
    

    mysql setup hat das nicht automatisch gemacht und ich weiß nicht warum.

  5. Installieren Sie MySQL erneut

    Sudo apt install mysql-server
    

    Ich habe stattdessen Sudo apt install lamp-server^ verwendet, um andere Abhängigkeiten für die PHP -Entwicklung zu installieren.

  6. Stoppen Sie MySQL:

    Sudo service mysql stop 
    
  7. Wiederherstellen von Datenbanken und Dateien:

    Sudo cp -a /your/backup/directory/mysql /var/lib   
    Sudo cp /your/backup/directory/my.cnf /etc/mysql 
    
  8. Starten Sie MySQL neu:

    Sudo service mysql start 
    
11
Omid

Ich habe es geschafft, dies zu beheben, ohne alles zu spülen. Es scheint, dass das Problem darin besteht, dass die Sys-Schemadatenbank nie erstellt wurde. Hier ist die Lösung:

  1. Klonen https://github.com/mysql/mysql-sys und cd in den geklonten Ordner.
  2. Führen Sie in einem Terminal mysql -u root -p <./sys_57.sql (oder sys_56.sql, abhängig von Ihrer Version) aus.

Viel Spaß beim erneuten Arbeiten mit mysql_upgrade. Ich schätze, das war wahrscheinlich ein Durcheinander bei der Aktualisierung von Skripten.

4
Asefa Tasew

Ich hatte auch dieses Problem. Jedes Mal, wenn ich apt get gestartet und installiert habe, blieb der Prozess nach oder während des DB-Updates hängen. Keine der anderen Lösungen hier hat funktioniert.

Am Ende habe ich gelöscht

Sudo apt purge mysql-server mysql-server-5.7

Und folgte der manuellen Installation aus den Anweisungen für MySQL hier

Ich habe dann das Datenverzeichnis mit meinen alten Daten überschrieben

Sudo cp -Rfv /var/lib/mysql /usr/local/mysql/data

und fügte schließlich einen Systemd-Dienst wie diesen hinzu

/lib/systemd/system/mysql.service

[Unit]
Description=MySQL Server
After=syslog.target
After=network.target

[Service]
Type=simple
PermissionsStartOnly=true
ExecStartPre=/bin/mkdir -p /var/run/mysqld
ExecStartPre=/bin/chown mysql:mysql -R /var/run/mysqld
ExecStart=/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/lib/mysql/plugin --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
TimeoutSec=300
PrivateTmp=true
User=mysql
Group=mysql
WorkingDirectory=/usr

[Install]
WantedBy=multi-user.target

Dann rannte

# systemctl daemon-reload
# systemctl enable mysql
# systemctl start mysql

Dann schien alles wie zuvor zu funktionieren und mysql brach keine Systemupdates ab

Der Nachteil ist natürlich, dass ich in Zukunft manuelle Updates durchführen muss.

2
Jeremy French

Wenn dein root @localhost Account kein Passwort hat, dann gibt es einen Fehler im Postinstall-Prozess wie angegeben hier (siehe insbesondere den letzten Kommentar des Threads)

  • lösche alle TMP* Dateien in /var/lib/mysql-files
  • bearbeite die Datei /var/lib/dpkg/info/mysql-server-5.7.postinst und kommentiere (mit #) die Zeile 370:

    echo "ALTER USER 'root'@'localhost' IDENTIFIED WITH 'auth_socket';" >> "$initfile"

  • erneut ausführen Sudo dpkg --configure -a

0
Gab