Ubuntu 16.04: no se puede debido al problema mysql-server-5.7

9

Estoy tratando de instalar / actualizar paquetes y cada vez que el proceso falla debido a un error de mysql-server:

    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)

Purgué y reinstalé mysql-server, incluso configuré la contraseña como nula sin caducidad para debian-sys-maint (está en una computadora de desarrollo, por lo que no hay datos confidenciales), pero el problema aún persiste.

No sé cómo resolverlo y es muy molesto ya que ahora ni siquiera puedo actualizar mi sistema porque este proceso siempre está involucrado.

Gracias por tu ayuda !

Charles-Antoine Fournel
fuente
Posible duplicado de la instalación
Rael Gugelmin Cunha
@RaelGugelminCunha: lo dudo. Las respuestas aceptadas a esta pregunta son bastante diferentes de las respuestas a su pregunta vinculada.
David Foerster

Respuestas:

8

Me las arreglé para arreglar esto sin tener que purgar todo. Parece que el problema es que la base de datos del esquema sys nunca se creó, así que aquí está la solución:

  • Clone https://github.com/mysql/mysql-sys y cden la carpeta clonada.
  • En una terminal, ejecute mysql -u root -p < ./sys_57.sql(o sys_56.sql, según su versión)
  • Disfruta mysql_upgrade trabajando de nuevo.

Supongo que esto probablemente fue, como dijo @skerit, un desastre de actualización de scripts.

Bagazo
fuente
Esto funcionó pero tuve que iniciar sesión en mysql y ejecutar el archivo sql usando el comando de origen.
cnizzardini
Entonces, esto me ha sucedido nuevamente, usando Ubuntu 17.04. Esta vez aparentemente es un desajuste de tipo de la last_updatecolumna en la mysql.innodb_index_statstabla interna . No sé si es culpa del empaquetador, de MySQL o de otra persona, pero mi recomendación después de mi experiencia con MySQL desde 16.04 es que migre a MariaDB tan pronto como sea posible. Como mañana si es posible.
Marc
He tenido problemas con MariaDb y es básicamente lo mismo que MySQL. La mayoría de las cosas nuevas que estoy haciendo están en PostgreSQL.
cnizzardini
Esto todavía está sucediendo en Ubuntu 17.10 ... Actualicé Ubuntu por la única razón para deshacerme de esta molestia ... FFS UBUNTU!
BlackDivine
4

Alguien estropeó los scripts de actualización, y en una versión LTS no menos.

El principal problema radica en la actualización del esquema del sistema. Si no desea eliminar todos sus datos, puede forzar la actualización de esta manera:

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

Esta es una solución sucia, por supuesto, ya que el esquema del sistema ahora no es lo que se supone que debe ser, pero al menos puede continuar usando mysql.

skerit
fuente
1
Sí, los idiotas de mysql se equivocaron
Stevie G
0

Eliminé solo /var/lib/mysql/sysdir y luego ejecuté este comando:

mysql_update -u root -p

Todo salió bien.

Fabio Zeri
fuente
-2

Finalmente elimino todo los componentes de mysql (mysql-server, mysql-server-5.7, mysql-server-core-5.7) y los datos (/ var / lib / mysql, / etc / mysql) y hago una nueva instalación.

Todo funciona bien ahora.

Creo que los dbs internos de mysql estaban dañados de alguna manera o faltaban datos durante la migración de 5.6 a 5.7 (desde el registro de cambios, la contraseña de la columna de la tabla de usuario se ha eliminado para una nueva)

espero que ayude

Charles-Antoine Fournel
fuente
Recomiendo editar esta respuesta para expandirla con detalles específicos sobre cómo hacerlo. (Consulte también ¿Cómo escribo una buena respuesta? Para obtener consejos generales sobre qué tipos de respuestas se consideran más valiosas en AskUbuntu.)
David Foerster