Ubuntu 16.04: não é possível devido ao problema do mysql-server-5.7

9

Estou tentando instalar / atualizar pacotes e sempre que o processo falha devido a um erro do servidor 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)

Eu limpei e reinstalei o mysql-server, até defini a senha como nula sem vencimento para o debian-sys-maint (está em um computador dev, portanto, não há dados confidenciais), mas o problema ainda permanece.

Não sei como resolvê-lo e é muito chato, já que agora nem consigo atualizar meu sistema porque esse processo está sempre envolvido.

Obrigado pela ajuda!

Charles-Antoine Fournel
fonte
@RaelGugelminCunha: Duvido. A resposta aceita nesta pergunta é bem diferente das respostas à sua pergunta vinculada.
David Foerster

Respostas:

8

Consegui consertar isso sem precisar limpar tudo. Parece que o problema é que o banco de dados esquema sys nunca foi criado, então aqui está a solução:

  • Clone https://github.com/mysql/mysql-sys e cdna pasta clonada.
  • Em um terminal, execute mysql -u root -p < ./sys_57.sql(ou sys_56.sql, dependendo da sua versão)
  • Desfrute do mysql_upgrade trabalhando novamente.

Eu acho que isso provavelmente foi, como o @skerit disse, uma bagunça nos scripts de atualização.

Marc
fonte
Isso funcionou, mas eu tive que fazer login no mysql e executar o arquivo sql usando o comando source.
Cnizzardini
Então, isso aconteceu novamente comigo, usando o Ubuntu 17.04. Desta vez, aparentemente, é uma incompatibilidade de tipo da last_updatecoluna na mysql.innodb_index_statstabela interna . Não sei se é culpa do empacotador, do MySQL ou de outra pessoa, mas minha recomendação após minha experiência com o MySQL desde 16.04 é que você migre para o MariaDB o mais rápido possível. Tipo, amanhã, se possível.
Marc
Eu tive problemas com o MariaDb e é basicamente o mesmo que o MySQL. A maioria dos novos coisas que eu estou fazendo é em PostgreSQL.
Cnizzardini 01/08/19
Isso ainda está acontecendo no Ubuntu 17.10 ... Eu atualizei o Ubuntu pelo único motivo para se livrar desse aborrecimento ... FFS UBUNTU!
precisa saber é o seguinte
4

Alguém estragou os scripts de atualização e, em uma versão LTS, nada menos.

O principal problema está na atualização do esquema do sistema. Se você não deseja excluir todos os seus dados, pode forçar a atualização assim:

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

Esta é uma solução alternativa suja, é claro, já que o esquema do sistema não é mais o que deveria ser, mas pelo menos você pode continuar usando o mysql.

skerit
fonte
1
Sim os idiotas mysql asneira
Stevie G
0

Eu removi apenas /var/lib/mysql/sysdir e executei este comando:

mysql_update -u root -p

Tudo correu bem.

Fabio Zeri
fonte
-2

Eu finalmente removi tudo os componentes do mysql (mysql-server, mysql-server-5.7, mysql-server-core-5.7) e dados (/ var / lib / mysql, / etc / mysql) e faço uma nova instalação.

Tudo funciona bem agora.

Eu acho que os dbs internos do mysql estavam de alguma forma corrompidos ou com dados ausentes durante a migração de 5.6 para 5.7 (do log de alterações, a senha da coluna da tabela do usuário foi excluída para uma nova)

espero que ajude

Charles-Antoine Fournel
fonte
Eu recomendo editar esta resposta para expandi-la com detalhes específicos sobre como fazer isso. (Veja também Como faço para escrever uma boa resposta? Para o conselho geral sobre que tipos de respostas são consideradas mais valiosas sobre AskUbuntu.)
David Foerster