Problemy z instalowaniem i usuwaniem MySQL w Ubuntu

26

Mam problem z instalacją lub usunięciem częściowo zainstalowanego serwera mysql-5.6 w Ubuntu15.04. Wystąpił błąd

$ 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)

Czy ktoś może mi w tym pomóc?

Shameerariff
źródło
Lepiej można usunąć i mam nadzieję, że czysta ponowna instalacja byłaby w porządku.
vembutech
Próbowałem tego procesu nadal mam problem, tj. Jestem w stanie odinstalować lub ponownie zainstalować serwer mysql
Shameerariff
1
Starałem się jak najlepiej, aby znaleźć przyczynę problemu. Usunąłem dane z pliku statusu apt i zaktualizowałem apt, gdzie zauważyłem, że system ma problem z libgcc1 libc6. Próbuję rozwiązać problem. Będę publikować status na podstawie moich ustaleń.
Shameerariff,

Odpowiedzi:

55

Spróbuj wyczyścić, a następnie zainstaluj ponownie.

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

Aktualizacja 04.09.2018:
Jeśli masz problemy z odinstalowaniem / instalacją, ponieważ proces MySQL jest aktywny, możesz spróbować najpierw, a następnie powyżej:
sudo kill $(pgrep mysql)

sdkks
źródło
Próbowałem tego procesu nadal mam problem, tj. Jestem w stanie odinstalować lub ponownie zainstalować serwer mysql
Shameerariff
Oryginalne instrukcje usunęły metapakiet, co nie było możliwe. Nowe edytowane instrukcje działają z 16.04.
mrm
Pracował dla mnie na elementarnym systemie operacyjnym.
MChaker,
2
Działa to dla mnie dopiero po sprawdzeniu ps -aef | grep mysqli wysłaniu sygnału zabicia do wszystkich odmian uruchomionego mysqld.
Charney Kaye
12

Bardzo prostym rozwiązaniem, które I (linux noob) musiałem wykopać ... jest utworzenie pliku.

nano /etc/mysql/my.cnf.fallback

i wypełnij ją domyślną zawartością pakietu 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/

znalezione tutaj na apt-browse.org

użytkownik636300
źródło
Jest to lepsza odpowiedź od przyjętej, ponieważ rozwiązuje rzeczywisty problem bez konieczności użycia podejścia brutalnej siły.
devius
W moim przypadku touch /etc/mysql/my.cnf.fallbackudało mi się rozwiązać problem.
oalders
9

Czyszczenie / Ponowna instalacja również nie działały dla mnie. Znalazłem następujące „rozwiązanie”:

Nie mogłem znaleźć na mysql.cnf.fallbackliście w „dostarczonych plikach” dla mysql-server-5.6/ mysql-client-5.6ani żadnych dodatkowych informacji o pliku.

Skopiowałem /etc/mysql/my.cnfdo /etc/mysql/my.cnf.fallback(zgadując, że byłby to relatywnie mniej ważny plik konfiguracyjny „rezerwowy”);

/etc/mysql/my.cnfjest dowiązaniem symbolicznym, więc ls /etc/mysqlteraz pokazuje:

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

Instalacja pakietu zakończyła się wtedy bezbłędnie (prawdopodobnie problem „nie istnieje” został „rozwiązany”).

Nie spotkałem (jeszcze) żadnych negatywnych skutków.

Jungle Editor
źródło
Brzmi świetnie, ale czy możesz wyjaśnić przyczynę problemu, Byłoby to korzystne dla innych.
Shameerariff
5

Miałem ten sam problem podczas próby wyczyszczenia serwera mysql (5.7.14).

W przypadku braku plików my.cnf *, możesz ponownie zainstalować pakiet mysql-common , a następnie możesz wyczyścić oba ( mysql-server i mysql-common )

Te pliki my.cnf * należą do pakietu mysql-common (patrz poniżej):

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


1. Ponownie zainstaluj mysql-common

apt-get install --reinstall mysql-common

  1. Oczyść mysql-common

apt-get purge mysql-common

ivanleoncz
źródło
1

Sprawdziłem mój /etc/mysql/folder i okazało się, że jest całkowicie pusty, inny niż pusty podfolder 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

to (dzięki uprzejmości tego linku ten link )

sudo dpkg --configure -a

i teraz wszystko wydaje się w porządku.

Powyższy link również wspomina, --force-dependsale nie potrzebowałem tego. Wspomina także, apt-get -f installale znowu nie potrzebowałem tego.

północno-Bradley
źródło
To był dokładnie mój problem. Naprawiłem to dla mnie.
Dave Kincaid
0

Jak zauważył charneykaye w komentarzach, to podejście może się nie powieść, jeśli mysqlw tle będą jakieś procesy. Użyłem:

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

Zabiłem pierwsze 3 procesy (ostatni to grepsamo wywołanie!), Używając:

kill -9 6682 8883 7046

Następnie usuń wszystko mysqlzwiązane:

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

a następnie zainstaluj:

apt install mysql-server

Potem zadziałało.

Wersje:

  • Mennica 18.1 (w oparciu o Ubuntu). Trzeba będzie zastąpić aptdla apt-getniektórych innych wersjach.
Deleet
źródło
0

Znalazłem na to łatwe rozwiązanie:

Pierwszy krok: apt-get install mysql-common --reinstall

Drugi krok: apt-get install mysql-server --reinstall

I to działa!

alefen
źródło
0

Po wypróbowaniu wszystkich powyższych odpowiedzi udało mi się rozwiązać ten problem:

sudo rm /etc/rc5.d/S03mysql

Następnie był w stanie uruchomić:

sudo apt purge mysql-server mysql-server-5.7 mysql-server-core-5.7

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

Kang Zdobywca
źródło