Ubuntu 16.04: impossible à cause d'un problème avec mysql-server-5.7

9

J'essaie d'installer / mettre à jour des packages et chaque fois que le processus échoue en raison d'une erreur du serveur 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)

J'ai purgé et réinstallé mysql-server, j'ai même défini le mot de passe sur null sans expiration pour debian-sys-maint (c'est sur un ordinateur de développement donc pas de données sensibles) mais le problème persiste.

Je ne sais pas comment le résoudre et c'est très ennuyeux puisque maintenant je ne peux même pas mettre à jour mon système car ce processus est impliqué à chaque fois.

Merci pour ton aide !

Charles-Antoine Fournel
la source
Duplicata possible de l' installation
Rael Gugelmin Cunha
@RaelGugelminCunha: J'en doute. La réponse acceptée sur cette question est très différente des réponses à votre question liée.
David Foerster

Réponses:

8

J'ai réussi à résoudre ce problème sans avoir à tout purger. Il semble que le problème soit que la base de données du schéma sys n'ait jamais été créée, voici donc la solution:

  • Clonez https://github.com/mysql/mysql-sys et cddans le dossier cloné.
  • Dans un terminal, exécutez mysql -u root -p < ./sys_57.sql(ou sys_56.sql, selon votre version)
  • Profitez de nouveau de mysql_upgrade.

Je suppose que c'était probablement, comme l'a dit @skerit, un gâchis de mise à niveau des scripts.

Marc
la source
Cela a fonctionné mais j'ai dû me connecter à mysql et exécuter le fichier sql en utilisant la commande source.
cnizzardini
Donc, cela m'est encore arrivé, en utilisant Ubuntu 17.04. Cette fois, il s'agit apparemment d'une incompatibilité de type de la last_updatecolonne dans la mysql.innodb_index_statstable interne . Je ne sais pas si c'est la faute du packager, de MySQL ou de quelqu'un d'autre, mais ma recommandation après mon expérience avec MySQL depuis le 16.04 est que vous migriez vers MariaDB dès que vous le pouvez. Comme demain si possible.
Marc
J'ai eu des problèmes avec MariaDb ainsi que son essentiellement le même que MySQL. La plupart des nouvelles choses que je fais sont dans PostgreSQL.
cnizzardini
Cela se produit toujours dans Ubuntu 17.10 ... J'ai mis à jour Ubuntu pour la seule raison de se débarrasser de cet ennui .... FFS UBUNTU!
BlackDivine
4

Quelqu'un a foiré les scripts de mise à niveau, et dans une version LTS pas moins.

Le principal problème réside dans la mise à niveau du schéma système. Si vous ne souhaitez pas supprimer toutes vos données, vous pouvez forcer la mise à jour comme ceci:

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

C'est une solution de contournement, bien sûr, car le schéma système n'est plus ce qu'il est censé être, mais au moins vous pouvez continuer à utiliser mysql.

skerit
la source
1
Ouais les idiots de mysql ont foiré
Stevie G
0

J'ai supprimé seulement /var/lib/mysql/sysdir puis j'ai exécuté cette commande:

mysql_update -u root -p

Tout s'est bien passé.

Fabio Zeri
la source
-2

J'ai finalement supprimé tous les composants mysql (mysql-server, mysql-server-5.7, mysql-server-core-5.7) et les données (/ var / lib / mysql, / etc / mysql) et j'en fais une nouvelle installation.

Tout fonctionne bien maintenant.

Je pense que le dbs interne mysql a été en quelque sorte corrompu ou avec des données manquantes lors de la migration de 5.6 à 5.7 (du journal des modifications, le mot de passe de la colonne de la table utilisateur a été supprimé pour un nouveau)

j'espère que cela vous aidera

Charles-Antoine Fournel
la source
Je recommande de modifier cette réponse pour la développer avec des détails spécifiques sur la façon de procéder. (Voir aussi Comment puis-je écrire une bonne réponse? Pour des conseils généraux sur les types de réponses considérées comme les plus utiles sur AskUbuntu.)
David Foerster