Avoir des problèmes pour installer et supprimer MySQL dans Ubuntu

26

J'ai du mal à installer ou à supprimer le mysql-server-5.6 partiellement installé dans ubuntu15.04. L'erreur que je reçois était

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

Quelqu'un peut-il m'aider à ce sujet?

Shameerariff
la source
Mieux peut supprimer et j'espère qu'une réinstallation propre serait bien je pense.
vembutech
J'ai essayé ce processus mais j'ai toujours le problème, c'est-à-dire que je suis capable de désinstaller ou réinstaller le serveur mysql
Shameerariff
1
J'ai fait de mon mieux pour trouver la cause du problème. J'ai supprimé les données du fichier d'état d'apt et mis à jour l'apt, où j'ai remarqué que le système rencontrait le problème avec libgcc1 libc6. J'essaie de résoudre le problème Gardera le statut en fonction de mes résultats.
Shameerariff

Réponses:

55

Essayez de faire une purge, puis réinstallez.

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

Mise à jour 04.09.2018:
Si vous avez des problèmes de désinstallation / installation parce que le processus MySQL est en ligne, vous pouvez essayer ceci d'abord, puis ci-dessus:
sudo kill $(pgrep mysql)

sdkks
la source
J'ai essayé ce processus mais j'ai toujours le problème, c'est-à-dire que je suis capable de désinstaller ou réinstaller le serveur mysql
Shameerariff
Les instructions d'origine ont supprimé le métapaquet, qui était un no-op. Les nouvelles instructions modifiées fonctionnent avec 16.04.
mrm
A travaillé pour moi sur OS élémentaire.
MChaker
2
Cela n'a fonctionné pour moi qu'après avoir vérifié ps -aef | grep mysqlet envoyé un signal de mise à mort à toutes les variétés de mysqld en cours d'exécution.
Charney Kaye
12

Une solution très simple que j'ai (le noob linux) a dû déterrer ... est de créer le fichier.

nano /etc/mysql/my.cnf.fallback

et le remplir avec le contenu par défaut du paquet 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/

trouvé ici à apt-browse.org

user636300
la source
C'est une meilleure réponse que celle acceptée car elle résout le problème réel sans avoir à utiliser l'approche par force brute.
devius
Dans mon cas, touch /etc/mysql/my.cnf.fallbackj'ai réussi à résoudre le problème.
oalders
9

La purge / réinstallation ne fonctionnait pas non plus pour moi. J'ai trouvé la "solution" suivante:

Je n'ai pas pu trouver la mysql.cnf.fallbackliste dans les "fichiers fournis" pour mysql-server-5.6/ mysql-client-5.6ni aucune information supplémentaire sur le fichier.

J'ai copié /etc/mysql/my.cnfdans /etc/mysql/my.cnf.fallback(devinant que cela aurait été un fichier de configuration "de secours" relativement moins important);

/etc/mysql/my.cnfest un lien symbolique, ls /etc/mysqlmontre maintenant:

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

L'installation du package s'est ensuite terminée sans erreur (car le problème "n'existe pas" a probablement été "résolu").

Je n'ai pas rencontré d'effets indésirables (pour l'instant).

Éditeur Jungle
la source
Cela semble génial, mais pouvez-vous expliquer la raison du problème, ce serait bénéfique pour les autres.
Shameerariff
5

J'ai eu le même problème en essayant de purger le serveur mysql (5.7.14).

Dans le cas où les fichiers my.cnf * sont manquants, vous pouvez réinstaller le package mysql-common , et ensuite, vous pouvez purger les deux ( mysql-server & mysql-common )

Ces fichiers my.cnf * appartiennent au paquet mysql-common (voir ci-dessous):

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


1. Réinstallez mysql-common

apt-get install --reinstall mysql-common

  1. Purger mysql-common

apt-get purge mysql-common

ivanleoncz
la source
1

J'ai vérifié mon /etc/mysql/dossier et l' ai trouvé complètement vide autre qu'un sous-dossier vide 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

puis (gracieuseté de ce lien ce lien )

sudo dpkg --configure -a

et maintenant tout va bien.

Le lien ci-dessus mentionne également --force-dependsmais je n'en avais pas besoin. Il mentionne également, apt-get -f installmais encore une fois, je n'en avais pas besoin.

north-bradley
la source
C'était exactement mon problème. Cela m'a arrangé.
Dave Kincaid
0

Comme l'a noté charneykaye dans les commentaires, cette approche peut échouer s'il y a des mysqlprocessus en arrière-plan. J'ai utilisé:

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

A tué les 3 premiers processus (le dernier est l' grepappel lui-même!) En utilisant:

kill -9 6682 8883 7046

Ensuite, supprimez tout ce mysqlqui est lié:

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

puis installez:

apt install mysql-server

Ensuite, cela a fonctionné.

Versions:

  • Mint 18.1 (basé sur Ubuntu). Vous aurez besoin de remplacer aptpour apt-getquelques autres versions.
Deleet
la source
0

J'ai trouvé une solution simple pour cela:

Premier pas: apt-get install mysql-common --reinstall

Deuxième étape: apt-get install mysql-server --reinstall

Et il fonctionne!

Alefen
la source
0

Après avoir essayé toutes les réponses ci-dessus, j'ai pu résoudre ce problème avec:

sudo rm /etc/rc5.d/S03mysql

Puis a pu exécuter:

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

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

Kang le conquérant
la source