Por que a instalação do MySQL 5.6 no Ubuntu 14.04 falhou?

30

Eu queria dar uma olhada no MySQL 5.6 no Ubuntu 14.04 apenas por curiosidade. E com base em este artigo certamente parecia que a instalação deveria ser simples e direta. Então, liguei um micro-servidor AWS EC2 executando o Ubuntu 14.04 (64 bits), conectado à minha instância original (via PuTTY) e emiti os seguintes comandos:

$ sudo apt-get update
$ sudo apt-get build-dep mysql-server-5.6
$ sudo apt-get install mysql-server-5.6

(Os dois primeiros comandos eram movimentos de desespero, pois simplesmente executar apt-get install sozinho não havia funcionado anteriormente. Mas, mesmo com todos os três comandos, a etapa de instalação ainda não funcionava.)

No ponto em que eu esperava, com base no artigo mencionado acima, ver essa saída do comando final:

mysql start/running, process 2355  
Setting up libhtml-template-perl (2.95-1) ...  
Setting up mysql-common-5.6 (5.6.16-1~exp1) ...  
Processing triggers for libc-bin (2.19-0ubuntu6) ...  
Processing triggers for ureadahead (0.100.0-16) ...  

Eu tenho isso em vez disso:

start: Job failed to start  
invoke-rc.d: initscript mysql, action "start" failed.  
dpkg: error processing package mysql-server-5.6 (--configure):  
 subprocess installed post-installation script returned error exit status 1  
Setting up libhtml-template-perl (2.95-1) ...  
Setting up mysql-common-5.6 (5.6.16-1~exp1) ...  
Processing triggers for libc-bin (2.19-0ubuntu6) ...  
Processing triggers for ureadahead (0.100.0-16) ...  
Errors were encountered while processing:  
 mysql-server-5.6  
E: Sub-process /usr/bin/dpkg returned an error code (1)

Alguém pode ver o que deu errado?

    
por WebLearner 29.04.2014 / 22:36

7 respostas

22

O problema que você está tendo é o mesmo que este relatório de bug . A falha em iniciar parece ser porque a configuração padrão do MySQL 5.6 requer mais memória do que pode ser obtida em sua micro instância.

A solução para o erro parece ser uma das seguintes:

  • Aumentar a quantidade de memória na sua instância do EC2
  • Defina um valor menor para a variável max_connections do MySQL
por Mike Miller 29.04.2014 / 22:52
22

Encontrei o mesmo problema ao iniciar meu pequeno VPS. O problema é causado por pouca memória. Portanto, sem gastar dinheiro extra para aumentar a memória que você não precisava, você poderia simplesmente criar arquivos de troca para ajudar na instalação. Sim, a troca é lenta, mas tudo que você precisa é fazer a instalação.

No Ubuntu 14.04, faço o seguinte para resolver o problema:

Crie um arquivo de troca 4G:

sudo fallocate -l 4G /swapfile

Altere sua permissão para que somente o root possa acessar e alterar:

sudo chmod 600 /swapfile

Faça a troca:

sudo mkswap /swapfile

Ativar:

sudo swapon /swapfile

Agora você pode tentar instalar o mysql novamente, desta vez, deve ser bem-sucedido. Apenas lembre-se de remover a instalação anterior sem sucesso antes de fazer isso.

    
por Arthur Wang 12.08.2014 / 18:39
3

Eu encontrei o mesmo problema. Embora eu tivesse a memória grande o suficiente de 12Gb dada à minha VM, mas ainda assim as coisas estavam falhando como em questão. Depois de passar algum tempo descobrindo que o padrão apt get estava faltando alguns dos pacotes de tradução de configuração e tradução de ferramentas.

O repositório apt do MySQL fornece uma maneira simples e conveniente de instalar e atualizar produtos MySQL com os pacotes de software mais recentes usando apt-get . Aqui está o que você tem que seguir:

  1. Adicionando o Repositório APT MySQL  Primeiro, adicione o repositório apt do MySQL à lista de repositórios de software do seu sistema. Siga estas etapas:

    • Acesse a página de download do repositório do MySQL apt no link .

    • Selecione e faça o download do pacote de lançamento.

    • Instale o pacote de versão baixado com o seguinte comando, substituindo version-specific-package-name pelo nome do pacote baixado (precedido por seu caminho, se você não estiver executando o comando dentro da pasta onde está o pacote):

      sudo dpkg -i /PATH/version-specific-package-name.deb
      

    Note que o mesmo pacote funciona em todas as plataformas Debian e Ubuntu suportadas.

    • Durante a instalação do pacote, você será solicitado a escolher as versões do servidor MySQL e outros componentes (por exemplo, o MySQL Workbench) que você deseja instalar. Se você não tiver certeza de qual versão escolher, não altere as opções padrão selecionadas para você. Você também pode escolher none se não quiser que um componente específico seja instalado. Depois de fazer as escolhas para todos os componentes, escolha OK para concluir a configuração e a instalação do pacote de lançamento.
      

    você sempre pode alterar suas escolhas para as versões posteriores;   consulte Selecionando uma versão principal da release para obter instruções.

    • Atualize as informações do pacote do repositório do APL MySQL com o seguinte comando (esta etapa é obrigatória):

      sudo apt-get update
      
  2. Instalando o MySQL com o APT

    • Instale o MySQL pelo seguinte comando:

      sudo apt-get install mysql-server
      

Isso instala o pacote para o servidor MySQL, assim como os pacotes para o cliente e para os arquivos comuns do banco de dados.

Durante a instalação, há duas solicitações pelas caixas de diálogo: Fornecer uma senha para o usuário root da sua instalação do MySQL.

  1. Iniciando e parando o servidor MySQL

O servidor MySQL é iniciado automaticamente após a instalação.     - Você pode verificar o status do servidor MySQL com o seguinte comando:

sudo service mysql status
  • Pare o servidor MySQL com o seguinte comando:

    sudo service mysql stop
    
  • Para reiniciar o servidor MySQL, use o seguinte comando:

    sudo service mysql start
    

Eu segui este link . Isso funcionou sem problemas e baixou todos os pacotes e instalou com sucesso mysql 5.6 .

    
por Ritesh 06.05.2016 / 12:53
2

No meu caso, adicionei

innodb_buffer_pool_size = 20M

para o /etc/mysql/my.cnf

    
por maxkoryukov 16.02.2016 / 17:48
1

Desativar o performance_schema também economiza muita memória. Meu banco de dados vazio vai de 400m a 40m na inicialização:

performance_schema=0

Documentos do MySQL: link

    
por dannrob 07.08.2014 / 07:53
1

Encontrei esse problema no Ubuntu 15.10. Para mim, não foi um problema de memória (tenho 2 GB de RAM e 18 GB de swap, dos quais apenas cerca de 300 MB foram utilizados no total).

No meu caso, dpkg estava procurando por /etc/mysql/conf.d , que não existia (mas /etc/mysql/mysql.conf.d fez!). Reinstalando o mysql e criando manualmente a pasta /etc/mysql/conf.d resolveu meu problema .

Como exatamente isso aconteceu? Eu não faço ideia. Quase não queria compartilhar minha resposta, pois aposto que essa solução é específica para meu computador.

Eu resolvi esse problema usando o utilitário strace , que é fantástico para esse tipo de coisa, se incrivelmente detalhado.

Eu usei assim:

  • Depois de pressionar ctrl c na metade de apt-get install mysql-server , tive que executar dpkg --configure -a para concluir a instalação.

  • Eu corri strace 2>/tmp/trace dpkg --configure -a . Isso me fez um bom strace log em /tmp/trace .

  • Examinei o log, especialmente na parte inferior, onde ele falhou.

  • Eu notei que ele tentou acessar /etc/mysql/conf.d e obteve o código de erro ENOENT, nenhum arquivo ou diretório .

Para qualquer pessoa que queira tentar, faça o strace 2>/tmp/trace (command) e o grep para ENOENT . Como eu disse, esta solução é provavelmente específica para o meu computador, mas você pode querer tentar.

    
por apricot boy 08.12.2015 / 08:32
0

No meu caso, tudo que eu precisava fazer era fazer algumas alterações em my.cnf e apenas deletar 2 arquivos de logs chamados ib_logfile0 e ib_logfile1 , e iniciar o mysql

service mysql start

Não é necessário reinstalar o mysql, apenas exclua estes 2 arquivos de log e reinicie o servidor mysql

Abaixo das alterações que fiz em my.cnf :

max_connections     = 1000     
max_allowed_packet  = 1024M
wait_timeout        = 7200 
    
por Lavina Chitara 05.01.2017 / 09:57