Ubuntu 16.04: tidak bisa karena masalah mysql-server-5.7

9

Saya mencoba menginstal / memperbarui paket dan setiap kali proses gagal karena kesalahan server 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)

Saya memang membersihkan dan menginstal ulang mysql-server, saya bahkan mengatur kata sandi ke nol tanpa kedaluwarsa untuk debian-sys-Maint (itu pada komputer dev sehingga tidak ada data sensitif) tetapi masalah masih ada.

Saya tidak tahu bagaimana menyelesaikannya dan itu sangat mengganggu karena sekarang saya bahkan tidak dapat memperbarui sistem saya karena proses ini terlibat setiap waktu.

Terima kasih atas bantuannya!

Charles-Antoine Fournel
sumber
Kemungkinan duplikat instalasi mysql macet di Ubuntu 16.04 (tanpa hak akses root)
Rael Gugelmin Cunha
@RaelGugelminCunha: Saya ragu. Jawaban yang diterima pada pertanyaan ini sangat berbeda dari jawaban untuk pertanyaan Anda yang ditautkan.
David Foerster

Jawaban:

8

Saya berhasil memperbaiki ini tanpa harus membersihkan semuanya. Tampaknya masalahnya adalah bahwa database skema sys tidak pernah dibuat, jadi inilah solusinya:

  • Klon https://github.com/mysql/mysql-sys dan cdke folder yang dikloning.
  • Di terminal, jalankan mysql -u root -p < ./sys_57.sql(atau sys_56.sql, tergantung versi Anda)
  • Nikmati mysql_upgrade bekerja kembali.

Saya kira ini mungkin, seperti kata @skerit, skrip upgrade yang ditingkatkan.

Marc
sumber
Ini berhasil tetapi saya harus masuk ke mysql dan menjalankan file sql menggunakan perintah sumber.
cnizzardini
Jadi, ini terjadi lagi pada saya, menggunakan Ubuntu 17.04. Kali ini tampaknya ini adalah ketidakcocokan jenis last_updatekolom di mysql.innodb_index_statstabel internal . Saya tidak tahu apakah itu kesalahan paket, MySQL atau orang lain, tetapi rekomendasi saya setelah pengalaman saya dengan MySQL sejak 16,04 adalah bahwa Anda bermigrasi ke MariaDB sesegera mungkin. Seperti, besok jika memungkinkan.
Marc
Saya memiliki masalah dengan MariaDb dan pada dasarnya sama dengan MySQL. Kebanyakan hal baru yang saya lakukan adalah di PostgreSQL.
cnizzardini
Ini masih terjadi di Ubuntu 17.10 ... Saya memutakhirkan Ubuntu dengan satu-satunya alasan untuk menyingkirkan gangguan ini .... FFS UBUNTU!
BlackDivine
4

Seseorang mengacaukan skrip upgrade, dan dalam rilis LTS tidak kurang.

Masalah utama terletak pada peningkatan skema sistem. Jika Anda tidak ingin menghapus semua data Anda, Anda dapat memaksa pembaruan seperti ini:

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

Ini adalah solusi yang kotor, tentu saja, karena skema sistem sekarang tidak seperti yang seharusnya, tetapi setidaknya Anda dapat terus menggunakan mysql.

skerit
sumber
1
Ya para idiot di mysql mengacau
Stevie G
0

Saya hanya menghapus /var/lib/mysql/sysdir dan kemudian menjalankan perintah ini:

mysql_update -u root -p

Semuanya baik-baik saja.

Fabio Zeri
sumber
-2

Saya akhirnya menghapus semua komponen mysql (mysql-server, mysql-server-5.7, mysql-server-core-5.7) dan data (/ var / lib / mysql, / etc / mysql) dan melakukan instalasi baru.

Semuanya berfungsi dengan baik sekarang.

Saya pikir db internal mysql entah bagaimana rusak atau dengan data yang hilang selama migrasi dari 5,6 ke 5,7 (dari log perubahan, kata sandi kolom dari tabel pengguna telah dihapus untuk yang baru)

Semoga ini bisa membantu

Charles-Antoine Fournel
sumber
Saya sarankan untuk mengedit jawaban ini untuk meluaskannya dengan detail spesifik tentang bagaimana melakukan ini. (Lihat juga Bagaimana cara saya menulis jawaban yang baik? Untuk saran umum tentang jawaban seperti apa yang dianggap paling berharga di AskUbuntu.)
David Foerster