MySQL não inicia

1

Estou usando um sistema debian. Eu não pude iniciar meu mysql depois que a partição ficou cheia - recebi a mensagem "ERRO: A partição com / var / lib / mysql está muito cheia!"

Eu encontrei uma recomendação para excluir algumas das pastas de dados que eu não preciso em / var / lib / mysql, então eu apaguei a pasta de um banco de dados antigo que eu não precisava.

Agora, quando tentei iniciar o serviço mysqld novamente, recebi o seguinte erro:

150218 10:09:03 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
150218 10:09:03 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full n$
150218 10:09:03 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use$
150218 10:09:03 [Note] Plugin 'FEDERATED' is disabled.
150218 10:09:03 InnoDB: The InnoDB memory heap is disabled
150218 10:09:03 InnoDB: Mutexes and rw_locks use GCC atomic builtins
150218 10:09:03 InnoDB: Compressed tables use zlib 1.2.7
150218 10:09:03 InnoDB: Using Linux native AIO
150218 10:09:03 InnoDB: Initializing buffer pool, size = 128.0M
150218 10:09:03 InnoDB: Completed initialization of buffer pool
150218 10:09:03 InnoDB: highest supported file format is Barracuda.
InnoDB: Log scan progressed past the checkpoint lsn 20417554120
150218 10:09:03  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
InnoDB: Doing recovery: scanned up to log sequence number 20419913007
150218 10:09:03  InnoDB: Error: page 24667 log sequence number 20425339296
InnoDB: is in the future! Current system log sequence number 20419913007.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
InnoDB: for more information.
150218 10:09:03  InnoDB: Error: page 530914 log sequence number 20426394124
InnoDB: is in the future! Current system log sequence number 20419913007.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
InnoDB: for more information.
InnoDB: 1 transaction(s) which must be rolled back or cleaned up
InnoDB: in total 6135 row operations to undo
InnoDB: Trx id counter is 574E00
150218 10:09:04  InnoDB: Starting an apply batch of log records to the database...
InnoDB: Progress in percents: 150218 10:09:04  InnoDB: Error: page 248000 log sequence number 20425331738
InnoDB: is in the future! Current system log sequence number 20419913007.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html

Eu vi que deveria iniciar o mysql enquanto adicionava ao my.cnf o seguinte comando innodb_force_recovery = 1/2/3/4/5/6 Começando de um, subindo.

Tentei tudo isso, mas nada.

Alguém tem alguma ideia?

    
por Yanipan 18.02.2015 / 16:30

2 respostas

0

Eu tive um problema muito similar quando / var / lib / mysql / root. Dê uma olhada no link Use um link simbólico já que são tantos caminhos enterrados em vários arquivos de configuração, é difícil localizá-los.

    
por 19.02.2015 / 11:17
0

Ao excluir um diretório inteiro do banco de dados, você tornou seu sistema inconsistente: muito provavelmente, você ainda tem referências a esse banco de dados em "ibdata *" e "ib_logfile *" (supondo que existam tabelas InnoDB nesse banco de dados).

A mensagem de erro "o número de sequência do log está no futuro" é outro sinal de inconsistências semelhantes.

Você pode tentar iniciar seu servidor MySQL usando "innodb_force_recovery" (o que o torna somente leitura) e então usar "mysqldump" para obter seus dados, armazená-los em outro lugar. Então, livre-se de seus arquivos de banco de dados (provavelmente tudo abaixo de "/ var / lib / mysql / data") e instale uma nova instância vazia do MySQL ("mysql_install_db") na qual você carrega esse dump. Isso pode incluir perda de dados, devido a essas inconsistências.

Não se esqueça de configurar o monitoramento do seu espaço em disco!

    
por 26.02.2015 / 15:13

Tags