Eu queria dar uma olhada no MySQL 5.6 no Ubuntu 14.04 por curiosidade. E com base neste artigo , certamente parecia que a instalação deveria ser simples e direta. Por isso, iniciei um micro servidor AWS EC2 executando o Ubuntu 14.04 (64 bits), efetuei login na minha instância intocada (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 foram movimentos desesperados, já que simplesmente correr apt-get install
sozinho anteriormente não funcionara. Mas, mesmo com 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 esta 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 entendi isso:
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?
14.04
mysql
amazon-ec2
WebLearner
fonte
fonte
Respostas:
O problema que você está tendo é o mesmo deste relatório de erro . A falha ao iniciar parece ser porque a configuração padrão do MySQL 5.6 requer mais memória do que pode obter na sua micro instância.
A solução para o erro parece ser uma das seguintes ações:
max_connections
variável do MySQLfonte
sudo apt-get install mysql-server-5.6
. Portanto, certamente parece que uma micro instância EC2 não possui memória suficiente para instalar o MySQL 5.6 usando o apt-get!Eu encontrei o mesmo problema quando inicio meu pequeno VPS. O problema é causado por pouca memória. Portanto, sem gastar dinheiro extra para aumentar a memória desnecessária, você pode simplesmente criar arquivos de troca para ajudar na instalação. Sim, a troca é lenta, mas tudo o que você precisa é concluir a instalação.
No Ubuntu 14.04, faço o seguinte para resolver o problema:
Crie um arquivo de troca 4G:
Altere sua permissão para que somente o root possa acessar e alterar:
Faça a troca:
Ativar:
Agora você pode tentar instalar o mysql novamente, desta vez com sucesso. Lembre-se de remover a instalação sem êxito anterior antes de fazer isso.
fonte
Eu encontrei o mesmo problema. Embora eu tivesse a memória suficiente grande de 12 GB dada à minha VM, mas ainda assim as coisas estavam falhando como em questão. Depois de passar algum tempo, o apt get padrão 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 os produtos MySQL com os mais recentes pacotes de software usando
apt-get
. Aqui está o que você deve seguir:Adicionando o repositório MySQL APT Primeiro, adicione o repositório MySQL apt à lista de repositórios de software do seu sistema. Siga esses passos:
Vá para a página de download do repositório apt do MySQL em http://dev.mysql.com/downloads/repo/apt/ .
Selecione e faça o download do pacote de lançamento.
Instale o pacote de liberaçã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 na pasta em que o pacote está):
Observe que o mesmo pacote funciona em todas as plataformas suportadas Debian e Ubuntu.
Atualize as informações do pacote do repositório MySQL APT com o seguinte comando (esta etapa é obrigatória):
Instalando o MySQL com APT
Instale o MySQL pelo seguinte comando:
Isso instala o pacote para o servidor MySQL, bem como os pacotes para o cliente e para os arquivos comuns do banco de dados.
Durante a instalação, há duas solicitações nas caixas de diálogo: Forneça uma senha para o usuário root para sua instalação do MySQL.
O servidor MySQL é iniciado automaticamente após a instalação. - Você pode verificar o status do servidor MySQL com o seguinte comando:
Pare o servidor MySQL com o seguinte comando:
Para reiniciar o servidor MySQL, use o seguinte comando:
Eu segui este http://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-fresh-install . Isso funcionou sem problemas e baixou todos os pacotes e foi instalado com sucesso
mysql 5.6
.fonte
No meu caso eu adicionei
ao
/etc/mysql/my.cnf
fonte
Desativar o performance_schema também economiza muita memória. Meu banco de dados vazio indo de 400m a 40m na inicialização:
Documentos do MySQL: http://dev.mysql.com/doc/refman/5.6/en/performance-schema.html
fonte
Encontrei esse problema no Ubuntu 15.10. Para mim, não era um problema de memória (eu tenho 2 GB de RAM e 18 GB de swap, dos quais apenas cerca de 300 MB foram usados no total).
No meu caso,
dpkg
estava procurando/etc/mysql/conf.d
, o que não existia (no entanto existia/etc/mysql/mysql.conf.d
!). 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. Eu quase não queria compartilhar minha resposta, pois aposto que esta solução é específica para o meu computador.
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 no ctrlcmeio
apt-get install mysql-server
, tive que correrdpkg --configure -a
para concluir a instalação.Corri
strace 2>/tmp/trace dpkg --configure -a
. Isso me fez um bomstrace
registro em/tmp/trace
.Eu olhei através do log, especialmente no fundo, onde ele falhou.
Notei que ele tentou acessar
/etc/mysql/conf.d
e obteve o código de erro ENOENT, sem esse arquivo ou diretório .Para quem quiser experimentar, faça o
strace 2>/tmp/trace (command)
e grepENOENT
. Como eu disse, esta solução provavelmente é específica para o meu computador, mas você pode tentar.fonte
No meu caso, tudo o que eu precisava fazer era fazer algumas alterações
my.cnf
e excluir apenas 2 arquivos de log com o nomeib_logfile0
eib_logfile1
, e iniciar o mysqlNão há necessidade de reinstalar o mysql, apenas exclua esses 2 arquivos de log e reinicie o servidor mysql
Abaixo as alterações que fiz em
my.cnf
:fonte