mysql parou após uma importação em um servidor

2
Oi toda esta noite eu tenho importado para o meu servidor (servidor Linux 512Mb Ram com o Ubuntu), é uma grande importação em um banco de dados com o Magento (e-commerce). Quando abro meu site o mysql não funciona, já vi que no servidor o serviço está inoperante, parado. Eu reiniciei todos os apache 2 e memcache e agora funciona. Mas eu quero saber porque o mysql foi parado. Em /var/log/mysql/error.log eu fundei esta linha:

InnoDB: Progress in percents: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52$
InnoDB: Rolling back of trx id 1CA46C3 completed
130126 14:29:58  InnoDB: Rollback of non-prepared transactions completed
130128  6:05:51 [Note] Plugin 'FEDERATED' is disabled.
130128  6:05:59 InnoDB: The InnoDB memory heap is disabled
130128  6:05:59 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130128  6:05:59 InnoDB: Compressed tables use zlib 1.2.3.4
130128  6:06:11 InnoDB: Initializing buffer pool, size = 128.0M
130128  6:06:19 InnoDB: Completed initialization of buffer pool
130128  6:11:51 [Note] Plugin 'FEDERATED' is disabled.
130128  6:12:01 InnoDB: The InnoDB memory heap is disabled
130128  6:12:01 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130128  6:12:01 InnoDB: Compressed tables use zlib 1.2.3.4
130128  6:12:19 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
130128  6:12:23 InnoDB: Completed initialization of buffer pool
130128  6:12:23 InnoDB: Fatal error: cannot allocate memory for the buffer pool
130128  6:12:28 [ERROR] Plugin 'InnoDB' init function returned error.
130128  6:12:29 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
130128  6:12:30 [ERROR] Unknown/unsupported storage engine: InnoDB
130128  6:12:30 [ERROR] Aborting

130128  6:12:32 [Note] /usr/sbin/mysqld: Shutdown complete


130128  6:21:04 [Note] /usr/sbin/mysqld: Shutdown complete
130128  6:21:03 [Note] Plugin 'FEDERATED' is disabled.
130128  6:21:03 InnoDB: The InnoDB memory heap is disabled
130128  6:21:03 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130128  6:21:03 InnoDB: Compressed tables use zlib 1.2.3.4
130128  6:21:03 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
130128  6:21:03 InnoDB: Completed initialization of buffer pool
130128  6:21:03 InnoDB: Fatal error: cannot allocate memory for the buffer pool
130128  6:21:03 [ERROR] Plugin 'InnoDB' init function returned error.
130128  6:21:03 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
130128  6:21:03 [ERROR] Unknown/unsupported storage engine: InnoDB
130128  6:21:03 [ERROR] Aborting

130128  6:21:04 [Note] /usr/sbin/mysqld: Shutdown complete

Você pode me ajudar a encontrar o problema? Esta linha pode ser útil para entender o problema?

    
por Alessandro Minoccheri 28.01.2013 / 09:28

2 respostas

1

Como sugerido nos comentários, você deve instalar qualquer software de monitoramento.

Se algum dia seu problema acontecer novamente, você poderá descobrir o motivo.

Observe que algumas pessoas tiveram o mesmo problema e o resolveram por adicionando swap .

    
por 28.01.2013 / 11:36
0
Em primeiro lugar, eu não posso imaginar por que você está tentando executar uma loja Magento com apenas 512MB de RAM - é uma receita para o desastre .

130128 6:21:03 InnoDB: Fatal error: cannot allocate memory for the buffer pool

Esta é uma das duas coisas.

Você acabou de alocar memória no seu my.cnf

Isso não seria uma surpresa se você copiou + colou uma configuração "otimizada" do MySQL Magento da internet - sem prestar atenção à diferenciação do seu hardware, e do hardware do OP.

Você pode verificar executando,

mysql> show variables like 'innodb_buffer%';

Se esse valor estiver excedendo sua quantidade de RAM, reduza-o em sua configuração do MySQL /etc/mysql/my.cnf ou /etc/my.cnf e reinicie o MySQL.

Você está restrito por ulimit

Mesmo que sua configuração do MySQL esteja dentro dos limites aceitáveis de memória - você pode ser restringido pelas configurações do servidor.

Você pode verificar executando,

ulimit  -a

E verificar os valores de virtual memory e max memory size . Teste-o executando

ulimit -v unlimited
ulimit -m unlimited

Então, iniciando o MySQL

/etc/init.d/mysql start
    
por 02.02.2013 / 01:54