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-сервера, навіть встановив пароль до нуля без закінчення терміну дії для debian-sys-maint (він знаходиться на комп'ютері розробників, тому немає чутливих даних), але проблема все ще залишається.

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

Дякую за допомогу!



@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 за допомогою команди source.
— cnizzardini

Отже, це знову сталося зі мною, використовуючи Ubuntu 17.04. Цього разу, мабуть, це невідповідність типу last_updateстовпця у внутрішній mysql.innodb_index_statsтаблиці. Я не знаю, чи це вина пакувача, MySQL чи когось іншого, але після мого досвіду роботи з MySQL з 16.04 моя рекомендація полягає в тому, що ви перейдете до MariaDB, як тільки зможете. Мовляв, завтра, якщо можливо.
— Марк

У мене були проблеми з MariaDb, а також в основному такі ж, як і MySQL. Більшість нових речей, які я роблю, - це в PostgreSQL.
— cnizzardini

Це все ще відбувається в Ubuntu 17.10 ... Я модернізував Ubuntu з єдиної причини позбутися цього роздратування .... FFS UBUNTU!
— BlackDivine

4

Хтось зіпсував сценарії оновлення, і в LTS-релізі не менше.

Основна проблема полягає в оновленні системної схеми. Якщо ви не хочете видалити всі свої дані, ви можете примусити оновлення таким чином:

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

Це, звичайно, брудне рішення, оскільки системна схема зараз не така, якою повинна бути, але принаймні ви можете продовжувати використовувати mysql.


1
Ага, ідіоти в mysql накрутили
— Стіві Г

0

Я видалив лише /var/lib/mysql/sysdir, а потім запустив цю команду:

mysql_update -u root -p

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


-2

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

Зараз все працює чудово.

Я маю на увазі, що внутрішній dbs mysql був якось пошкоджений або з відсутніми даними під час міграції з 5,6 до 5,7 (з журналу змін пароль колонки з таблиці користувачів видалено для нового)

сподіваюся, що це допоможе


Рекомендую відредагувати цю відповідь, щоб розширити її конкретними деталями, як це зробити. (Дивіться також Як я можу написати гарну відповідь? Для загальних порад про те, які типи відповідей вважаються найціннішими на AskUbuntu.)
— Девід Фоерстер,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.