Ubuntu 16.04: nie można z powodu problemu mysql-server-5.7


9

Próbuję instalować / aktualizować pakiety i za każdym razem, gdy proces kończy się niepowodzeniem z powodu błędu serwera mysql:

    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)

Usunąłem i ponownie zainstalowałem serwer mysql, nawet ustawiłem hasło na zero bez wygaśnięcia dla debian-sys-maint (jest na komputerze deweloperskim, więc nie ma wrażliwych danych), ale problem nadal pozostaje.

Nie wiem, jak to rozwiązać i jest to bardzo denerwujące, ponieważ teraz nie mogę nawet zaktualizować mojego systemu, ponieważ proces ten jest za każdym razem zaangażowany.

Dzięki za pomoc!



@RaelGugelminCunha: Wątpię. Akceptowana odpowiedź na to pytanie różni się znacznie od odpowiedzi na powiązane pytanie.
— David Foerster,

Odpowiedzi:


8

Udało mi się to naprawić bez konieczności czyszczenia wszystkiego. Wydaje się, że problem polega na tym, że baza danych schematu sys nigdy nie została utworzona, więc oto rozwiązanie:

  • Clone https://github.com/mysql/mysql-sys i cddo sklonowanego folderu.
  • W terminalu uruchom mysql -u root -p < ./sys_57.sql(lub sys_56.sql, w zależności od wersji)
  • Ciesz się, że mysql_upgrade działa ponownie.

Myślę, że to prawdopodobnie, jak powiedział @skerit, bałagan aktualizacji skryptów.


To działało, ale musiałem zalogować się do mysql i uruchomić plik sql za pomocą komendy source.
— cnizzardini,

Zdarzyło mi się to ponownie przy użyciu Ubuntu 17.04. Tym razem najwyraźniej jest to niedopasowanie typu last_updatekolumny w wewnętrznej mysql.innodb_index_statstabeli. Nie wiem, czy to wina programu pakującego, MySQL czy kogoś innego, ale moim zaleceniem po moim doświadczeniu z MySQL od 16.04 jest migracja do MariaDB tak szybko, jak to możliwe. Na przykład jutro, jeśli to możliwe.
— Marc

Miałem problemy z MariaDb, a także w zasadzie tak samo jak MySQL. Większość nowych rzeczy, które robię, to PostgreSQL.
— cnizzardini

To wciąż się dzieje w Ubuntu 17.10 ... Uaktualniłem Ubuntu tylko dlatego, aby pozbyć się tej irytacji ... FFS UBUNTU!
— BlackDivine

4

Ktoś pomylił skrypty aktualizacji i nie mniej w wydaniu LTS.

Główny problem polega na aktualizacji schematu systemu. Jeśli nie chcesz usuwać wszystkich danych, możesz wymusić aktualizację w następujący sposób:

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

Jest to oczywiście nieprzyjemne obejście, ponieważ schemat systemu nie jest już taki, jak powinien, ale przynajmniej możesz nadal używać mysql.


1
Tak, idioci z mysql spieprzyli
— Stevie G.

0

Usunąłem tylko /var/lib/mysql/syskatalog, a następnie uruchomiłem to polecenie:

mysql_update -u root -p

Wszystko poszło dobrze.


-2

W końcu usuwam wszystkie składniki mysql (mysql-server, mysql-server-5.7, mysql-server-core-5.7) i dane (/ var / lib / mysql, / etc / mysql) i robię nową instalację.

Wszystko działa teraz dobrze.

Wydaje mi się, że wewnętrzne dys mysql zostały w jakiś sposób uszkodzone lub brakuje danych podczas migracji z 5.6 do 5.7 (z dziennika zmian hasło kolumny z tabeli użytkownika zostało usunięte dla nowego)

mam nadzieję, że to pomoże


Zalecam edycję tej odpowiedzi, aby rozszerzyć ją o szczegółowe informacje na temat tego, jak to zrobić. (Zobacz także Jak napisać dobrą odpowiedź? Zawiera ogólne porady na temat tego, jakie rodzaje odpowiedzi są uważane za najcenniejsze na AskUbuntu.)
— David Foerster,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.