Ubuntu 16.04: ไม่สามารถใช้งานได้เนื่องจากปัญหา mysql-server-5.7


9

ฉันพยายามติดตั้ง / อัพเดทแพ็คเกจและทุกครั้งที่กระบวนการล้มเหลวเนื่องจากข้อผิดพลาด 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)

ฉันได้ทำการลบและติดตั้ง mysql-server อีกครั้งฉันยังตั้งรหัสผ่านเป็น null โดยไม่หมดอายุสำหรับ debian-sys-maint (อยู่บนคอมพิวเตอร์ dev ไม่มีข้อมูลที่ละเอียดอ่อน) แต่ปัญหายังคงอยู่

ฉันไม่รู้วิธีแก้ปัญหาและมันน่ารำคาญมากตั้งแต่ตอนนี้ฉันไม่สามารถอัพเดตระบบได้เพราะกระบวนการนี้เกี่ยวข้องทุกครั้ง

ขอบคุณสำหรับความช่วยเหลือของคุณ!



@RaelGugelminCunha: ฉันสงสัย คำตอบที่ได้รับการยอมรับสำหรับคำถามนี้ค่อนข้างแตกต่างจากคำตอบสำหรับคำถามที่เชื่อมโยงของคุณ
David Foerster

คำตอบ:


8

ฉันจัดการเพื่อแก้ไขปัญหานี้โดยไม่ต้องล้างทุกอย่าง ดูเหมือนว่าปัญหาคือฐานข้อมูล sys schema ไม่เคยสร้างดังนั้นนี่คือวิธีแก้ปัญหา:

  • โคลน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 โดยเร็วที่สุด เช่นพรุ่งนี้ถ้าเป็นไปได้
Marc

ฉันมีปัญหากับ MariaDb รวมถึงพื้นฐานเหมือนกับ MySQL สิ่งใหม่ที่สุดที่ฉันทำอยู่ใน PostgreSQL
cnizzardini

สิ่งนี้ยังคงเกิดขึ้นใน Ubuntu 17.10 ... ฉันอัปเกรด Ubuntu ด้วยเหตุผลเพียงอย่างเดียวในการกำจัดความรำคาญนี้ .... FFS UBUNTU!
BlackDivine

4

มีคนทำสคริปต์อัปเกรดและใน LTS จะวางจำหน่ายไม่น้อย

ปัญหาหลักอยู่ที่การอัพเกรดสกีมาระบบ หากคุณไม่ต้องการลบข้อมูลทั้งหมดคุณสามารถบังคับให้มีการอัปเดตดังนี้:

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

นี่เป็นวิธีแก้ปัญหาที่สกปรกแน่นอนเนื่องจากสคีมาของระบบไม่ใช่สิ่งที่ควรจะเป็น แต่อย่างน้อยคุณก็สามารถใช้ mysql ต่อไปได้


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) และ data (/ var / lib / mysql, / etc / mysql) และทำการติดตั้งใหม่

ตอนนี้ทุกอย่างทำงานได้ดี

ฉันสิ่งที่ mysql ภายในดีบีเอสได้รับความเสียหายอย่างใดอย่างหนึ่งหรือมีข้อมูลหายไปในระหว่างการโยกย้ายจาก 5.6-5.7 (จากบันทึกการเปลี่ยนแปลงรหัสผ่านคอลัมน์จากตารางผู้ใช้ถูกลบสำหรับใหม่)

หวังว่ามันจะช่วย


ฉันขอแนะนำให้แก้ไขคำตอบนี้เพื่อขยายด้วยรายละเอียดเฉพาะเกี่ยวกับวิธีการทำเช่นนี้ (ดูเพิ่มเติมฉันจะเขียนคำตอบที่ดีได้อย่างไรสำหรับคำแนะนำทั่วไปเกี่ยวกับคำตอบประเภทใดที่ถือว่ามีค่ามากที่สุดใน AskUbuntu)
David Foerster
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.