Mengalami kesulitan menginstal dan menghapus MySQL di Ubuntu


26

Saya mengalami masalah dalam menginstal atau menghapus mysql-server-5.6 yang terinstal sebagian di ubuntu15.04. Kesalahan yang saya dapatkan adalah

$ sudo apt-get -f install 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  mysql-server-5.6
The following packages will be upgraded:
  mysql-server-5.6
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
22 not fully installed or removed.
Need to get 0 B/5,501 kB of archives.
After this operation, 50.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
Preconfiguring packages ...
Setting up mysql-common (5.6.24-0ubuntu2) ...
update-alternatives: error: alternative path                 /etc/mysql/my.cnf.fallback doesn't exist
dpkg: error processing package mysql-common (--configure):
 subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
 mysql-common
localepurge: Disk space freed in /usr/share/locale: 0 KiB
localepurge: Disk space freed in /usr/share/man: 0 KiB
localepurge: Disk space freed in /usr/share/gnome/help: 0 KiB
localepurge: Disk space freed in /usr/share/omf: 0 KiB
localepurge: Disk space freed in /usr/share/doc/kde/HTML: 0 KiB

Total disk space freed by localepurge: 0 KiB

E: Sub-process /usr/bin/dpkg returned an error code (1)

Dapatkah seseorang membantu saya dalam hal ini?


Lebih baik dapat menghapus dan mudah-mudahan menginstal ulang yang bersih akan baik-baik saja kurasa.
vembutech

Saya mencoba proses ini masih ada masalah, yaitu saya ubable untuk menghapus atau menginstal ulang server mysql
Shameerariff

1
Saya mencoba level saya terbaik untuk mencari tahu penyebab masalah ini. Saya menghapus data dari file status apt dan memperbarui apt, di mana saya perhatikan sistem mengalami masalah dengan libgcc1 libc6. Saya mencoba menyelesaikan masalah Akan tetap memposting status berdasarkan temuan saya.
Shameerariff

Jawaban:


55

Coba lakukan pembersihan, lalu instal ulang.

sudo apt-get remove --purge mysql-\*
sudo apt-get install mysql-server mysql-client

Pembaruan 04.09.2018:
Jika Anda memiliki masalah menghapus instalan / menginstal karena proses MySQL hidup, Anda dapat mencoba ini terlebih dahulu, kemudian di atas:
sudo kill $(pgrep mysql)


Saya mencoba proses ini masih ada masalah, yaitu saya ubable untuk menghapus atau menginstal ulang server mysql
Shameerariff

Instruksi asli menghapus metapackage, yang merupakan no-op. Instruksi yang baru diedit bekerja dengan 16.04.
mrm

Bekerja untuk saya di OS dasar.
MChaker

2
Ini bekerja untuk saya hanya setelah saya memeriksa ps -aef | grep mysqldan mengirim sinyal mematikan ke semua jenis menjalankan mysqld.
Charney Kaye

12

Solusi yang sangat sederhana yang saya (linux noob) harus gali ... adalah membuat file.

nano /etc/mysql/my.cnf.fallback

dan isi dengan konten default dari paket mysql-common 5.7.11-0ubuntu6.

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
# 
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

!includedir /etc/mysql/conf.d/

ditemukan di sini di apt-browse.org


Ini adalah jawaban yang lebih baik daripada jawaban karena itu memperbaiki masalah yang sebenarnya tanpa harus menggunakan pendekatan brute force.
devius

Dalam kasus saya touch /etc/mysql/my.cnf.fallbackmembuat saya melewati masalah ini.
Penumpang

9

Bersihkan / Instal ulang juga tidak bekerja untuk saya. Saya menemukan "solusi" berikut:

Saya tidak dapat menemukan mysql.cnf.fallbacktercantum dalam "file yang disediakan" untuk mysql-server-5.6/ mysql-client-5.6atau info tambahan tentang file.

Saya salin /etc/mysql/my.cnfke /etc/mysql/my.cnf.fallback(menebak bahwa ini akan menjadi file konfigurasi "fallback" yang relatif kurang penting);

/etc/mysql/my.cnfadalah symlink, jadi ls /etc/mysqlsekarang menunjukkan:

 my.cnf.fallback -> /etc/alternatives/my.cnf
 my.cnf -> /etc/alternatives/my.cnf

Instalasi paket kemudian diselesaikan tanpa kesalahan (karena mungkin masalah "tidak ada" telah "diselesaikan").

Saya belum menemukan efek samping (belum).


Ini kedengarannya bagus tetapi dapatkah Anda menjelaskan alasan masalahnya, Ini akan bermanfaat bagi orang lain.
Shameerariff

5

Saya memiliki masalah yang sama ketika mencoba membersihkan mysql-server (5.7.14).

Jika file my.cnf * hilang, Anda dapat menginstal ulang paket mysql-common , dan setelah itu, Anda dapat membersihkan keduanya ( mysql-server & mysql-common )

File-file my.cnf * ini milik paket mysql-common (lihat di bawah):

$ dpkg -L mysql-common | grep cnf
/etc/mysql/my.cnf.fallback
/etc/mysql/conf.d/mysql.cnf


1. Instal ulang mysql-common

apt-get install --reinstall mysql-common

  1. Bersihkan mysql-common

apt-get purge mysql-common


1

Saya memeriksa /etc/mysql/folder saya dan ternyata benar-benar kosong selain sub-folder kosong conf.d.

cd /etc/
# you need to delete the empty mysql folder otherwise the ln below creates the link inside the existing mysql folder
sudo rm -r mysql
sudo ln -s ./mysql.bak/ mysql

lalu (milik tautan ini tautan ini )

sudo dpkg --configure -a

dan sekarang semua muncul oke.

Tautan di atas juga menyebutkan --force-dependstetapi saya tidak membutuhkan ini. Itu juga menyebutkan apt-get -f installtetapi sekali lagi saya tidak membutuhkan ini.


Ini persis masalah saya. Ini memperbaikinya untuk saya.
Dave Kincaid

0

Seperti dicatat oleh charneykaye dalam komentar, pendekatan ini bisa gagal jika ada beberapa mysqlproses di latar belakang. Saya menggunakan:

emil-mint-desktop ~ # ps -aef | grep mysql
root      6682     1  0 16:45 ?        00:00:00 sudo mysqld_safe --skip-grant-tables
root      6683  6682  0 16:45 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --skip-grant-tables
mysql     7046  6683  0 16:45 ?        00:00:01 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --skip-grant-tables --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306 --log-syslog=1 --log-syslog-facility=daemon --log-syslog-tag=
root     21046  9812  0 17:32 pts/5    00:00:00 grep --color=auto mysql

Membunuh 3 proses pertama (yang terakhir adalah greppanggilan itu sendiri!) Menggunakan:

kill -9 6682 8883 7046

Kemudian hapus semua yang mysqlterkait:

apt remove --purge mysql-\*
apt autoremove
apt autoclean

lalu instal:

apt install mysql-server

Lalu berhasil.

Versi:

  • Mint 18.1 (berdasarkan Ubuntu). Anda akan perlu untuk menggantikan aptuntuk apt-getbeberapa versi lain.

0

Saya menemukan solusi mudah untuk itu:

Langkah pertama: apt-get install mysql-common --reinstall

Tahap kedua: apt-get install mysql-server --reinstall

Dan itu berhasil!


0

Setelah mencoba semua jawaban di atas, saya dapat memperbaiki masalah ini dengan:

sudo rm /etc/rc5.d/S03mysql

Kemudian bisa menjalankan:

sudo apt membersihkan mysql-server mysql-server-5.7 mysql-server-core-5.7

sudo apt-get -f instal mysql-server - fix-missing - fix-broken

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.