Tendo problemas para instalar e remover o MySQL no Ubuntu

26

Estou com problemas para instalar ou remover o mysql-server-5.6 parcialmente instalado no ubuntu15.04. O erro que estou recebendo foi

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

Alguém pode me ajudar com isso?

Shameerariff
fonte
Melhor pode remover e espero que uma reinstalação limpa seria bom, eu acho.
Vembutech 01/07
Eu tentei este processo ainda tenho o problema, ou seja, i am ubable a desinstalação ou servidor reinstalação mysql
Shameerariff
1
Eu tentei o meu nível melhor para descobrir a causa do problema. Eu removi os dados do arquivo de status do apt e atualizei o apt, onde notei que o sistema estava com problemas com a libgcc1 libc6. Estou tentando resolver o problema Manterá o status do post com base em minhas descobertas.
Shameerariff

Respostas:

55

Tente fazer uma limpeza e, em seguida, reinstale.

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

Atualização 04.09.2018:
Se você tiver problemas para desinstalar / instalar porque o processo MySQL está ativo, tente isso primeiro e depois acima:
sudo kill $(pgrep mysql)

sdkks
fonte
Eu tentei este processo ainda tenho o problema, ou seja, i am ubable a desinstalação ou servidor reinstalação mysql
Shameerariff
As instruções originais removeram o metapacote, que não era uma opção. As novas instruções editadas funcionam com o 16.04.
mrm
Trabalhou para mim no sistema operacional elementar.
MChaker
2
Isso funcionou para mim somente depois que verifiquei ps -aef | grep mysqle enviei um sinal de interrupção para todas as variedades de mysqld em execução.
Charney Kaye
12

Uma solução muito simples que eu (o linux noob) tive que desenterrar ... é criar o arquivo.

nano /etc/mysql/my.cnf.fallback

e preencha-o com o conteúdo padrão do pacote 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 aqui em apt-browse.org

user636300
fonte
Essa é uma resposta melhor que a aceita, porque resolve o problema real sem ter que usar a abordagem da força bruta.
devius 30/01
No meu caso, touch /etc/mysql/my.cnf.fallbackpassou-me a questão.
Oalders
9

Limpar / Reinstalar também não funcionou para mim. Encontrei a seguinte "solução":

Não foi possível encontrar a mysql.cnf.fallbacklista nos "arquivos fornecidos" para mysql-server-5.6/ mysql-client-5.6nem qualquer informação adicional sobre o arquivo.

Copiei /etc/mysql/my.cnfpara /etc/mysql/my.cnf.fallback(supondo que esse teria sido um arquivo de configuração "fallback" relativamente menos importante);

/etc/mysql/my.cnfé um link simbólico, ls /etc/mysqlagora mostra:

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

A instalação do pacote foi concluída sem erros (já que provavelmente o problema "não existe" foi "resolvido").

Ainda não encontrei efeitos adversos.

Jungle Editor
fonte
Parece ótimo, mas você pode explicar o motivo do problema? Seria benéfico para os outros.
Shameerariff 28/08/2015
5

Eu tive o mesmo problema ao tentar limpar o mysql-server (5.7.14).

Caso estejam faltando os arquivos my.cnf *, você pode reinstalar o pacote mysql-common e, posteriormente, pode limpar os dois ( mysql-server & mysql-common )

Estes arquivos my.cnf * pertencem ao pacote mysql-common (veja abaixo):

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


1. Reinstale o mysql-common

apt-get install --reinstall mysql-common

  1. Limpe o mysql-common

apt-get purge mysql-common

ivanleoncz
fonte
1

Verifiquei minha /etc/mysql/pasta e a encontrei completamente vazia, exceto por uma subpasta vazia 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

então (cortesia deste link, este link )

sudo dpkg --configure -a

e agora tudo parece bem.

O link acima também menciona, --force-dependsmas eu não precisava disso. Também menciona, apt-get -f installmas novamente eu não precisava disso.

Northern-Bradley
fonte
Este foi exatamente o meu problema. Isso consertou para mim.
Dave Kincaid
0

Conforme observado por charneykaye nos comentários, essa abordagem pode falhar se houver alguns mysqlprocessos em segundo plano. Eu usei:

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

Matou os três primeiros processos (o último é a grepchamada em si!) Usando:

kill -9 6682 8883 7046

Em seguida, remova tudo mysqlrelacionado:

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

e instale:

apt install mysql-server

Então funcionou.

Versões:

  • Mint 18.1 (baseado no Ubuntu). Você precisará substituir aptpor apt-getoutras versões.
Deleet
fonte
0

Encontrei uma solução fácil para isso:

Primeiro passo: apt-get install mysql-common --reinstall

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

E funciona!

alefen
fonte
0

Depois de tentar todas as respostas acima, eu consegui corrigir esse problema com:

sudo rm /etc/rc5.d/S03mysql

Em seguida, foi capaz de executar:

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

sudo apt-get -f instala o mysql-server --fix-missing --fix-broken

Kang, o Conquistador
fonte