Ubuntu 16.04: Kann aufgrund eines MySQL-Server-5.7-Problems nicht passen

9

Ich versuche, Pakete zu installieren / zu aktualisieren, und jedes Mal, wenn der Prozess aufgrund eines MySQL-Server-Fehlers fehlschlägt:

    sudo apt install graylog-server
    Lecture des listes de paquets... Fait
    Construction de l'arbre des dépendances       
    Lecture des informations d'état... Fait
    graylog-server is already the newest version (2.0.3-1).
    0 mis à jour, 0 nouvellement installés, 0 à enlever et 10 non mis à jour.
    2 partiellement installés ou enlevés.
    Après cette opération, 0 o d'espace disque supplémentaires seront utilisés.
    Souhaitez-vous continuer ? [O/n] o
    Paramétrage de mysql-server-5.7 (5.7.12-0ubuntu1.1) ...
    Checking if update is needed.
    Checking server version.
    Running queries to upgrade MySQL server.
    mysql_upgrade: (non fatal) [ERROR] 1545: Failed to open mysql.event
    Checking system database.
    mysql.column_stats                                 OK
    mysql.columns_priv                                 OK
    mysql.db                                           OK
    mysql.engine_cost                                  OK
    mysql.event                                        OK
    mysql.func                                         OK
    mysql.general_log                                  OK
    mysql.gtid_executed                                OK
    mysql.gtid_slave_pos                               OK
    mysql.help_category                                OK
    mysql.help_keyword                                 OK
    mysql.help_relation                                OK
    mysql.help_topic                                   OK
    mysql.host                                         OK
    mysql.index_stats                                  OK
    mysql.innodb_index_stats                           OK
    mysql.innodb_table_stats                           OK
    mysql.ndb_binlog_index                             OK
    mysql.plugin                                       OK
    mysql.proc                                         OK
    mysql.procs_priv                                   OK
    mysql.proxies_priv                                 OK
    mysql.roles_mapping                                OK
    mysql.server_cost                                  OK
    mysql.servers                                      OK
    mysql.slave_master_info                            OK
    mysql.slave_relay_log_info                         OK
    mysql.slave_worker_info                            OK
    mysql.slow_log                                     OK
    mysql.table_stats                                  OK
    mysql.tables_priv                                  OK
    mysql.time_zone                                    OK
    mysql.time_zone_leap_second                        OK
    mysql.time_zone_name                               OK
    mysql.time_zone_transition                         OK
    mysql.time_zone_transition_type                    OK
    mysql.user                                         OK
    The sys schema is already up to date (version 1.5.0).
    Found 0 sys functions, but expected 21. Re-installing the sys schema.
    Upgrading the sys schema.
    mysql_upgrade: [ERROR] 1136: Column count doesn't match value count at row 1
    mysql_upgrade failed with exit status 5
    dpkg: erreur de traitement du paquet mysql-server-5.7 (--configure) :
     le sous-processus script post-installation installé a retourné une erreur de sortie d'état 1
    Aucun rapport « apport » n'a été créé car le message d'erreur indique une erreur consécutive à un échec précédent.
                                                                                                                      dpkg: des problèmes de dépendances empêchent la configuration de mysql-server :
     mysql-server dépend de mysql-server-5.7 ; cependant :
     Le paquet mysql-server-5.7 n'est pas encore configuré.

    dpkg: erreur de traitement du paquet mysql-server (--configure) :
     problèmes de dépendances - laissé non configuré
    Des erreurs ont été rencontrées pendant l'exécution :
     mysql-server-5.7
     mysql-server
    E: Sub-process /usr/bin/dpkg returned an error code (1)

Ich habe mysql-server gelöscht und neu installiert. Ich habe sogar das Passwort für debian-sys-wart auf null gesetzt, ohne dass es abläuft (es befindet sich auf einem Entwicklungscomputer, also keine vertraulichen Daten), aber das Problem bleibt weiterhin bestehen.

Ich weiß nicht, wie ich es lösen soll, und es ist sehr ärgerlich, da ich mein System jetzt nicht einmal aktualisieren kann, da dieser Prozess jedes Mal involviert ist.

Danke für deine Hilfe !

Charles-Antoine Fournel
quelle
Mögliches Duplikat der MySQL-Installation unter Ubuntu 16.04 (kein Root-Benutzerrecht)
Rael Gugelmin Cunha
@RaelGugelminCunha: Ich bezweifle es. Die akzeptierte Antwort auf diese Frage unterscheidet sich erheblich von den Antworten auf Ihre verknüpfte Frage.
David Foerster

Antworten:

8

Ich habe es geschafft, dies zu beheben, ohne alles löschen zu müssen. Es scheint, dass das Problem darin besteht, dass die Systemschemadatenbank nie erstellt wurde. Hier ist die Lösung:

  • Klonen Sie https://github.com/mysql/mysql-sys und cdin den geklonten Ordner.
  • Führen Sie in einem Terminal aus mysql -u root -p < ./sys_57.sql(oder sys_56.sql, abhängig von Ihrer Version)
  • Viel Spaß beim Arbeiten mit mysql_upgrade.

Ich denke, dies war wahrscheinlich, wie @skerit sagte, ein Durcheinander bei der Aktualisierung von Skripten.

Marc
quelle
Dies funktionierte, aber ich musste mich bei MySQL anmelden und die SQL-Datei mit dem Befehl source ausführen.
cnizzardini
Das ist mir mit Ubuntu 17.04 wieder passiert. Diesmal ist es anscheinend eine Typinkongruenz der last_updateSpalte in der internen mysql.innodb_index_statsTabelle. Ich weiß nicht, ob der Packager, MySQL oder jemand anderes schuld ist, aber meine Empfehlung nach meiner Erfahrung mit MySQL seit 16.04 ist, dass Sie so schnell wie möglich zu MariaDB migrieren. Wie morgen, wenn möglich.
Marc
Ich hatte Probleme mit MariaDb und es ist im Grunde das gleiche wie mit MySQL. Die meisten neuen Sachen, die ich mache, sind in PostgreSQL.
Cnizzardini
Dies geschieht immer noch in Ubuntu 17.10 ... Ich habe Ubuntu aus dem einzigen Grund aktualisiert, um diesen Ärger loszuwerden ... FFS UBUNTU!
BlackDivine
4

Jemand hat die Upgrade-Skripte durcheinander gebracht, und in einer LTS-Version nicht weniger.

Das Hauptproblem liegt in der Aktualisierung des Systemschemas. Wenn Sie nicht alle Ihre Daten löschen möchten, können Sie das Update folgendermaßen erzwingen:

mysql_upgrade -uroot -p --verbose --skip-sys-schema

Dies ist natürlich eine schmutzige Problemumgehung, da das Systemschema jetzt nicht mehr so ​​ist, wie es sein soll, aber zumindest können Sie weiterhin MySQL verwenden.

Skerit
quelle
1
Ja, die Idioten bei MySQL haben es vermasselt
Stevie G
0

Ich habe nur /var/lib/mysql/sysdir entfernt und dann diesen Befehl ausgeführt:

mysql_update -u root -p

Alles ging gut.

Fabio Zeri
quelle
-2

Ich entferne schließlich alle MySQL-Komponenten (MySQL-Server, MySQL-Server-5.7, MySQL-Server-Core-5.7) und Daten (/ var / lib / mysql, / etc / mysql) und installiere sie neu.

Alles funktioniert jetzt gut.

Ich denke, die internen MySQL-Datenbanken waren irgendwie beschädigt oder es fehlten Daten während der Migration von 5.6 auf 5.7 (aus dem Änderungsprotokoll wurde das Spaltenkennwort aus der Benutzertabelle für eine neue gelöscht).

hoffe es wird helfen

Charles-Antoine Fournel
quelle
Ich empfehle , diese Antwort zu bearbeiten , um sie mit spezifischen Details dazu zu erweitern. (Siehe auch Wie schreibe ich eine gute Antwort? Für allgemeine Ratschläge, welche Arten von Antworten auf AskUbuntu als am wertvollsten angesehen werden.)
David Foerster