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!
Odpowiedzi:
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:
cd
do sklonowanego folderu.mysql -u root -p < ./sys_57.sql
(lubsys_56.sql
, w zależności od wersji)Myślę, że to prawdopodobnie, jak powiedział @skerit, bałagan aktualizacji skryptów.
źródło
last_update
kolumny w wewnętrznejmysql.innodb_index_stats
tabeli. 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.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:
Jest to oczywiście nieprzyjemne obejście, ponieważ schemat systemu nie jest już taki, jak powinien, ale przynajmniej możesz nadal używać mysql.
źródło
Usunąłem tylko
/var/lib/mysql/sys
katalog, a następnie uruchomiłem to polecenie:Wszystko poszło dobrze.
źródło
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
źródło