Puncte:1

Ubuntu 20.10 nu poate instala sau dezinstala MySQL

drapel cn

În încercarea de a-mi actualiza sistemul înainte de actualizarea la 21.04 LTS, MySQL dădea erori că nu putea fi nici actualizat, nici reparat, așa că l-am curățat cu:

sudo apt purge mysql-server-8.0
Citirea listelor de pachete... Gata
Construirea arborelui de dependență       
Citirea informațiilor despre stare... Gata
Următoarele pachete vor fi ȘTERSE:
  mysql-server-8.0*
0 actualizat, 0 nou instalat, 1 de eliminat și 0 neactualizat.
După această operație, se vor folosi 0 B de spațiu suplimentar pe disc.
Doriți să continuați? [D/n] y
(Se citesc baza de date... 555934 fișiere și directoare instalate în prezent.)
Stergerea fișierelor de configurare pentru mysql-server-8.0 (8.0.17-0ubuntu2)...
Procesarea declanșatorilor pentru systemd (246.6-1ubuntu1.3)...

Cu toate acestea, acum nu se va reinstala.

sudo apt-get install mysql-client
Citirea listelor de pachete... Gata
Construirea arborelui de dependență       
Citirea informațiilor despre stare... Gata
Unele pachete nu au putut fi instalate. Acest lucru poate însemna că ai
a solicitat o situație imposibilă sau dacă utilizați instabil
distribuție că unele pachete necesare nu au fost încă create
sau a fost mutat din Incoming.
Următoarele informații pot ajuta la rezolvarea situației:

Următoarele pachete au dependențe neîndeplinite:
 mysql-common : Conflicte: mysql-client-8.0 dar 8.0.25-0ubuntu0.20.10.1 urmează să fie instalat
                Conflicte: mysql-client-core-8.0 dar 8.0.25-0ubuntu0.20.10.1 urmează să fie instalat

Ceva este aparent stricat, dar nu sunt sigur ce, deci cum procedez?

Iată câteva rezultate suplimentare bazate pe comentarii:

Actualizare Sudo apt
Hit:1 http://archive.ubuntu.com/ubuntu groovy InRelease
Hit:2 http://archive.ubuntu.com/ubuntu groovy-updates InRelease
Hit:3 http://archive.ubuntu.com/ubuntu groovy-security InRelease
Citirea listelor de pachete... Gata
Construirea arborelui de dependență       
Citirea informațiilor despre stare... Gata
Toate pachetele sunt la zi.
sudo apt clean

sudo apt autoremove
Citirea listelor de pachete... Gata
Construirea arborelui de dependență       
Citirea informațiilor despre stare... Gata
0 actualizat, 0 nou instalat, 0 de eliminat și 0 neactualizat.

sudo apt --fix-broken install
Citirea listelor de pachete... Gata
Construirea arborelui de dependență       
Citirea informațiilor despre stare... Gata
0 actualizat, 0 nou instalat, 0 de eliminat și 0 neactualizat.

sudo apt update && sudo apt upgrade
Hit:1 http://archive.ubuntu.com/ubuntu groovy InRelease
Hit:2 http://archive.ubuntu.com/ubuntu groovy-updates InRelease
Hit:3 http://archive.ubuntu.com/ubuntu groovy-security InRelease
Citirea listelor de pachete... Gata
Construirea arborelui de dependență       
Citirea informațiilor despre stare... Gata
Toate pachetele sunt la zi.
Citirea listelor de pachete... Gata
Construirea arborelui de dependență       
Citirea informațiilor despre stare... Gata
Se calculează upgrade-ul... Gata
0 actualizat, 0 nou instalat, 0 de eliminat și 0 neactualizat.

sudo dpkg --configure -a

sudo apt install -f
Citirea listelor de pachete... Gata
Construirea arborelui de dependență       
Citirea informațiilor despre stare... Gata
0 actualizat, 0 nou instalat, 0 de eliminat și 0 neactualizat.

Apoi am încercat să instalez mysql-client care dă erori pe mysql-client, în ciuda faptului că nu este instalat:

sudo apt install mysql-client
Citirea listelor de pachete... Gata
Construirea arborelui de dependență       
Citirea informațiilor despre stare... Gata
Unele pachete nu au putut fi instalate. Acest lucru poate însemna că ai
a solicitat o situație imposibilă sau dacă utilizați instabil
distribuție că unele pachete necesare nu au fost încă create
sau a fost mutat din Incoming.
Următoarele informații pot ajuta la rezolvarea situației:

Următoarele pachete au dependențe neîndeplinite:
 mysql-common : Conflicte: mysql-client-8.0 dar 8.0.25-0ubuntu0.20.10.1 urmează să fie instalat
                Conflicte: mysql-client-core-8.0 dar 

8.0.25-0ubuntu0.20.10.1 urmează să fie instalat

E: Nu puteți corecta problemele, ați reținut pachete sparte.

Încercări suplimentare:

sudo apt install mysql-client
Citirea listelor de pachete... Gata
Construirea arborelui de dependență       
Citirea informațiilor despre stare... Gata
Unele pachete nu au putut fi instalate. Acest lucru poate însemna că ai
a solicitat o situație imposibilă sau dacă utilizați instabil
distribuție că unele pachete necesare nu au fost încă create
sau a fost mutat din Incoming.
Următoarele informații pot ajuta la rezolvarea situației:

Următoarele pachete au dependențe neîndeplinite:
 mysql-common : Conflicte: mysql-client-8.0 dar 8.0.25-0ubuntu0.20.10.1 urmează să fie instalat
                Conflicte: mysql-client-core-8.0 dar 8.0.25-0ubuntu0.20.10.1 urmează să fie instalat
E: Nu puteți corecta problemele, ați reținut pachete sparte.

sudo apt purge mysql-client-8.0
Citirea listelor de pachete... Gata
Construirea arborelui de dependență       
Citirea informațiilor despre stare... Gata
Pachetul „mysql-client-8.0” nu este instalat, deci nu a fost eliminat
0 actualizat, 0 nou instalat, 0 de eliminat și 0 neactualizat.

sudo apt purge mysql-client-core-8.0
Citirea listelor de pachete... Gata
Construirea arborelui de dependență       
Citirea informațiilor despre stare... Gata
Pachetul „mysql-client-core-8.0” nu este instalat, deci nu a fost eliminat
0 actualizat, 0 nou instalat, 0 de eliminat și 0 neactualizat.

Se pare că îmi spune că MySQL nu este instalat, dar că o instalare a acestuia este în conflict! Cum rezolv această enigma?

Puncte:3
drapel in

Acest lucru poate fi uneori reparat prin curățare apt putin. Într-un terminal, încercați asta:

actualizare sudo apt
sudo apt clean
sudo apt autoremove

Acum încercați să instalați clientul MySQL. Dacă eroarea persistă, atunci poate fi necesar să „reparați” instalarea:

sudo apt --fix-broken install
sudo apt update && sudo apt upgrade
sudo dpkg --configure -a
sudo apt install -f

Acum ar trebui să puteți instala clientul:

sudo apt install mysql-client

Notă: Deși ați eliminat MySQL Server, există încă câteva fișiere care persistă /var/lib/mysql. Acestea sunt lăsate în urmă în mod intenționat după o dezinstalare. Dacă nu aveți nevoie de niciuna dintre bazele de date care erau disponibile anterior, nu ezitați să ștergeți acest director. S-ar putea să ai și tu /etc/mysql rămânând, care poate fi, de asemenea, șters dacă nu mai aveți nevoie de fișierele de configurare.


Curățarea MySQL din Ubuntu (18.04 și mai nou)

Dacă MySQL refuză să joace frumos, atunci poate fi necesar să urmați acești pași pentru a-l elimina complet din sistem:

  1. Deschideți terminalul (dacă nu este deja deschis)
  2. Asigurați-vă că procesul MySQL este oprit (chiar dacă nu rulează):
    sudo systemctl stop mysqld
    
  3. Scoateți pachetele MySQL din sistemul dvs.:
    sudo apt purge mysql-server mysql-common mysql-server-core-* mysql-client-core-*
    
    Și, doar de dragul completității, să ne asigurăm că nu există o instalare a MariaDB pe sistem:
    sudo apt purge mariadb-server 
    
  4. Verificați orice pachete rămase:
    sudo dpkg -l | grep mysql
    
    În mod ideal, veți obține zero rezultate. Cu toate acestea, dacă mai există ceva instalat, este posibil să vedeți ceva de genul acesta:
    ii libmysqlclient21:amd64 8.0.25-0ubuntu0.20.04.1 amd64 Bibliotecă client baze de date MySQL
    ii php-mysql 2:7.4+75 tot modulul MySQL pentru PHP [implicit]
    ii php7.4-mysql 7.4.3-4ubuntu2.4 amd64 modul MySQL pentru PHP
    
    Dacă vezi valori, epurare apt ei din sistem:
    sudo apt purge php-mysql php7.4-mysql libmysqlclient21
    
    Faceți același lucru pentru MariaDB:
    sudo dpkg -l | grep mariadb
    
  5. Curățați sistemul de fișiere al directoarelor MySQL (care sunt și ele folosite de MariaDB):
    sudo rm -rf /var/lib/mysql/
    sudo rm -rf /etc/mysql/
    sudo rm -rf /var/log/mysql
    
    Verificați și curățați fișierele respective:
    sudo find / -iname 'mysql*' -exec rm -rf {} \;
    
    IMPORTANT: Această comandă va elimina orice fișier care începe cu mysql din sistemul dvs. fără a cere confirmare. Asigurați-vă că îl utilizați cu multă grijă și considerație.
  6. Eliminați contul și grupul de utilizator MySQL:
    sudo deluser --remove-home mysql
    sudo delgroup mysql
    
    În cazul în care nu puteți șterge grupul, verificați dacă există alte conturi de utilizator care fac parte din grupul MySQL:
    mai puțin /etc/passwd
    
    Dacă este găsit, eliminați utilizatorii din grup delgroup din nou.
  7. Eliminați orice PPA terță parte care ar fi putut fi folosit pentru a instala anumite versiuni ale MySQL
  8. Actualizați-vă listele de surse:
    sudo apt autoremove -y
    sudo apt autoclean
    
  9. Luați o ceașcă de cafea, pentru că este timpul să faceți o pauză âï¸

Atâta timp cât nu aveți un fel de sistem XAMPP configurat pe mașina dvs., acest lucru ar trebui să elimine complet motorul bazei de date de pe computer.

DonP avatar
drapel cn
Am adăugat ieșirea din răspunsul de mai sus, deoarece mysql-client încă nu se va instala, aparent dând erori care intră în conflict cu el însuși, în ciuda faptului că nu este instalat.
DonP avatar
drapel cn
Sunt conștient de fișierele care persistă, deoarece nu am eliminat în mod intenționat folderul sau conținutul bazei de date.
DonP avatar
drapel cn
Încă blocat aici. Ubuntu se actualizează în sfârșit în această dimineață la v21.04, dar MySQL pare să fie blocat într-un mod dezinstalabil.
drapel in
Răspunsul actualizat pentru a include un proces de pământ pârjolit pentru a forța MySQL să dezactiveze sistemul.
DonP avatar
drapel cn
Asta a făcut trucul, mulțumesc!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.