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 !
Réponses:
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:
cd
dans le dossier cloné.mysql -u root -p < ./sys_57.sql
(ousys_56.sql
, selon votre version)Je suppose que c'était probablement, comme l'a dit @skerit, un gâchis de mise à niveau des scripts.
la source
last_update
colonne dans lamysql.innodb_index_stats
table 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.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:
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.
la source
J'ai supprimé seulement
/var/lib/mysql/sys
dir puis j'ai exécuté cette commande:Tout s'est bien passé.
la source
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
la source