Recentemente, atualizei do LTS Ubuntu anterior para o Precise e agora o mysql se recusa a iniciar. Ele reclama do seguinte quando tento iniciá-lo:
╰$ sudo service mysql restart
stop: Unknown instance:
start: Job failed to start
E isso mostra em "/var/log/mysql/error.log":
120415 23:01:09 [Note] Plugin 'InnoDB' is disabled.
120415 23:01:09 [Note] Plugin 'FEDERATED' is disabled.
120415 23:01:09 [ERROR] Unknown/unsupported storage engine: InnoDB
120415 23:01:09 [ERROR] Aborting
120415 23:01:09 [Note] /usr/sbin/mysqld: Shutdown complete
Eu verifiquei as permissões em todos os diretórios mysql para garantir que ele possuísse propriedade e também renomeei os ib_logs anteriores para que eles pudessem ser reformulados. No momento, não estou conseguindo entender onde está esse problema, depois de analisar os resultados do Google por 2 horas.
Respostas:
Depois de verificar os logs, encontrei o seguinte erro:
Eu removi esses arquivos:
às
/var/lib/mysql
Isso resolveu meu problema após a reinicialização.
fonte
rm
comando é usado para remover os arquivos em vez de renomeá-los, tanto quanto eu sei ...ibdata
arquivo contém os dados (a menos que você tenha arquivo por tabela). Os arquivos ib_logfile são os logs de reprodução que contêm os dados para transações que alteram o banco de dados que podem estar em processo quando / se o banco de dados travou. Se você conseguiu desligar o servidor com êxito, excluir esses arquivos de log não fará mal a você. Se falhar, você precisará deles. Mas esta é uma resposta válida. Se o seu arquivo my.cnf alterar a opção innodb_log_file_size e não corresponder mais a esses dois arquivos, você receberá a mensagem de erro informada pelo OP. Excluir / mover para que novos sejam corrigidos.mv ib_logfile0 ib_logfile0.bak && mv ib_logfile1 ib_logfile1.bak
.Se você realmente precisa
skip-innodb
(caso de uso: pouco espaço na memória), é claro que não precisa comentar. No entanto, se o InnoDB for o mecanismo de armazenamento padrão, o servidor falhará ao iniciar até você informar qual mecanismo de armazenamento usar, por exemplo,default-storage-engine=myisam
para MyISAM.Então, tente o seguinte:
fonte
default-storage-engine=myisam
no arquivo /etc/my.cnf em[mysqld]
. Isso fez o truque. ThxSe você estiver usando o MySQL 5.6+ e quiser desativar o InnoDB, não se esqueça de " --default-tmp-storage " ou ele não funcionará:
http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#option_mysqld_ignore-builtin-innodb
Você pode adicionar isso ao seu my.cnf:
apenas para garantir que funcione.
fonte
default-storage-engine
edefault-tmp-storage-engine
, obrigado.Verifique seu log de erros do mysql.
Se o seu registro diz (como o meu):
Você não tem memória suficiente para usar o tamanho padrão do buffer de 128M
Edite o arquivo de configuração /etc/mysql/my.cnf adicionando uma linha para especificar um tamanho innodb_buffer_pool_size menor.
Salve o arquivo de configuração e inicie o mysql
fonte
Tente mais 2 coisas. 1. Diminua o tamanho do buffer pool do innodb. 2. Edite o script inicial do mysql e adicione a opção --innodb.
Gostaria de saber também se o seu pacote é de buggy. Você poderia tentar uma versão menor diferente?
Além disso, suponho que seu servidor mysql também tenha sido atualizado? Talvez essa versão esteja quebrada? Preciso ainda não é final.
fonte
Eu recebi esse erro quando excluí o local para o qual uso
tmpdir
. Se você alterou recentemente o seutmpdir
, convém verificar se é um local gravável e válido.fonte