Ubuntu 16.04: невозможно из-за проблемы с mysql-server-5.7

9

Я пытаюсь установить / обновить пакеты, и каждый раз, когда процесс завершается неудачей из-за ошибки 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)

Я произвел чистку и переустановил mysql-сервер, даже установил пароль на null без истечения срока действия для debian-sys-maint (он находится на компьютере разработчика, поэтому нет конфиденциальных данных), но проблема все еще остается.

Я не знаю, как ее решить, и это очень раздражает, так как теперь я даже не могу обновить свою систему, потому что этот процесс задействован каждый раз.

Спасибо за помощь!

Чарльз-Антуан Фурнель
источник
Возможный дубликат установки mysql застрял в Ubuntu 16.04 (без привилегий пользователя root)
Раэль Гугельмин Кунья,
@RaelGugelminCunha: я сомневаюсь в этом. Принятый ответ на этот вопрос весьма отличается от ответов на ваш связанный вопрос.
Дэвид Фёрстер,

Ответы:

8

Мне удалось это исправить без необходимости очищать все. Кажется, проблема в том, что база данных схемы sys никогда не создавалась, поэтому вот решение:

  • Клонируйте https://github.com/mysql/mysql-sys и cdв клонированную папку.
  • В терминале запустите mysql -u root -p < ./sys_57.sql(или sys_56.sql, в зависимости от вашей версии)
  • Наслаждайтесь работой mysql_upgrade снова.

Я думаю, что, как сказал @skerit, это было ошибкой в ​​обновлении скриптов.

Марк
источник
Это сработало, но мне пришлось войти в MySQL и запустить файл SQL с помощью команды источника.
cnizzardini
Итак, это снова случилось со мной, используя Ubuntu 17.04. На этот раз очевидно, что это несоответствие типов last_updateстолбца во внутренней mysql.innodb_index_statsтаблице. Я не знаю, является ли это ошибкой упаковщика, MySQL или кого-то еще, но я рекомендую после моего опыта работы с MySQL с 16 апреля, что вы переходите на MariaDB, как только можете. Мол, завтра, если возможно.
Марк
У меня были проблемы с MariaDb, так же как и с MySQL. Большинство новых вещей, которые я делаю, в PostgreSQL.
cnizzardini
Это все еще происходит в Ubuntu 17.10 ... Я обновил Ubuntu по единственной причине, чтобы избавиться от этого раздражения .... FFS UBUNTU!
BlackDivine
4

Кто-то испортил сценарии обновления, и в выпуске LTS не меньше.

Основная проблема заключается в обновлении схемы системы. Если вы не хотите удалять все свои данные, вы можете принудительно выполнить обновление следующим образом:

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

Конечно, это грязный обходной путь, поскольку схема системы теперь не та, какой должна быть, но, по крайней мере, вы можете продолжать использовать mysql.

skerit
источник
1
Да, идиоты в mysql облажались
Stevie G
0

Я удалил только /var/lib/mysql/sysdir и затем выполнил эту команду:

mysql_update -u root -p

Все прошло нормально.

Фабио Зери
источник
-2

Наконец, я удаляю все компоненты mysql (mysql-server, mysql-server-5.7, mysql-server-core-5.7) и данные (/ var / lib / mysql, / etc / mysql) и делаю их свежую установку.

Теперь все работает нормально.

Я полагаю, что внутренние базы данных mysql были каким-то образом повреждены или отсутствовали данные во время миграции с 5.6 до 5.7 (из журнала изменений пароль столбца из пользовательской таблицы был удален для нового)

надеюсь это поможет

Чарльз-Антуан Фурнель
источник
Я рекомендую отредактировать этот ответ, чтобы дополнить его конкретными сведениями о том, как это сделать. (См. Также Как написать хороший ответ? Для общего совета о том, какие ответы считаются наиболее ценными в AskUbuntu.)
Дэвид Фёрстер,