Tener problemas para instalar y eliminar MySQL en Ubuntu

26

Tengo problemas para instalar o eliminar mysql-server-5.6 parcialmente instalado en ubuntu15.04. El error que recibo fue

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

¿Alguien me puede ayudar en esto?

Shameerariff
fuente
Mejor puede eliminar y espero que una reinstalación limpia estaría bien, creo.
vembutech 01 de
Intenté este proceso pero todavía tengo el problema, es decir, no puedo desinstalar o reinstalar el servidor mysql
Shameerariff
1
Hice mi mejor esfuerzo para descubrir la causa del problema. Eliminé los datos del archivo de estado de apt y actualicé el apt, donde noté que el sistema está experimentando el problema con libgcc1 libc6. Estoy tratando de resolver el problema. Seguiré publicando el estado según mis hallazgos.
Shameerariff

Respuestas:

55

Intente hacer una purga, luego vuelva a instalar.

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

Actualización 04.09.2018:
Si tiene problemas para desinstalar / instalar porque el proceso MySQL está en vivo, puede probar esto primero, luego arriba:
sudo kill $(pgrep mysql)

sdkks
fuente
Intenté este proceso pero todavía tengo el problema, es decir, no puedo desinstalar o reinstalar el servidor mysql
Shameerariff
Las instrucciones originales eliminaron el metapaquete, que era un no-op. Las nuevas instrucciones editadas funcionan con 16.04.
mrm
Trabajó para mí en el sistema operativo básico.
MChaker
2
Esto funcionó para mí solo después de verificar ps -aef | grep mysqly enviar una señal de cierre a todas las variedades de mysqld en ejecución.
Charney Kaye
12

Una solución muy simple que yo (el novato de Linux) tuve que desenterrar ... es crear el archivo.

nano /etc/mysql/my.cnf.fallback

y llénelo con el contenido predeterminado del paquete 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/

encontrado aquí en apt-browse.org

user636300
fuente
Esta es una mejor respuesta que la aceptada porque soluciona el problema real sin tener que usar el enfoque de fuerza bruta.
devius
En mi caso, touch /etc/mysql/my.cnf.fallbackconseguí superar el problema.
Oalders
9

Purgar / reinstalar tampoco funcionó para mí. Encontré la siguiente "solución":

No pude encontrar la mysql.cnf.fallbacklista en los "archivos proporcionados" para mysql-server-5.6/ mysql-client-5.6ni ninguna información adicional sobre el archivo.

Copié /etc/mysql/my.cnfa /etc/mysql/my.cnf.fallback(adivinando que este habría sido un archivo de configuración "alternativo" relativamente menos importante);

/etc/mysql/my.cnfes un enlace simbólico, por lo que ls /etc/mysqlahora muestra:

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

La instalación del paquete se completó sin error (ya que presumiblemente el problema "no existe" se "resolvió").

No he encontrado ningún efecto adverso (todavía).

Jungle Editor
fuente
Esto suena muy bien, pero ¿puede explicar la razón del problema? Sería beneficioso para otros.
Shameerariff
5

Tuve el mismo problema al intentar purgar mysql-server (5.7.14).

En caso de que falten los archivos my.cnf *, puede volver a instalar el paquete mysql-common , y luego, puede purgar ambos ( mysql-server & mysql-common )

Estos archivos my.cnf * pertenecen al paquete mysql-common (ver más abajo):

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


1. Vuelva a instalar mysql-common

apt-get install --reinstalar mysql-common

  1. Purgar mysql-common

apt-get purge mysql-common

ivanleoncz
fuente
1

Revisé mi /etc/mysql/carpeta y encontré que estaba completamente vacía, aparte de una subcarpeta vacía 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

entonces (cortesía de este enlace este enlace )

sudo dpkg --configure -a

y ahora todo parece estar bien

El enlace de arriba también menciona --force-dependspero no necesitaba esto. También menciona apt-get -f installpero nuevamente no necesitaba esto.

Northern Bradley
fuente
Este fue exactamente mi problema. Esto me lo arregló.
Dave Kincaid el
0

Como señaló charneykaye en los comentarios, este enfoque puede fallar si hay algunos mysqlprocesos en segundo plano. Solía:

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

Eliminó los primeros 3 procesos (¡el último es la grepllamada en sí!) Usando:

kill -9 6682 8883 7046

Luego elimine todo lo mysqlrelacionado:

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

y luego instalar:

apt install mysql-server

Entonces funcionó.

Versiones

  • Mint 18.1 (basado en Ubuntu). Tendrá que sustituir aptpor apt-getalgunas otras versiones.
Deleet
fuente
0

Encontré una solución fácil para eso:

Primer paso: apt-get install mysql-common --reinstall

Segundo paso: apt-get install mysql-server --reinstall

¡Y funciona!

alefen
fuente
0

Después de probar todas las respuestas anteriores, pude solucionar este problema con:

sudo rm /etc/rc5.d/S03mysql

Luego pude ejecutar:

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 el conquistador
fuente