vários processos mysql causaram a queda da tabela DB

3

Meu site tem vários aplicativos PHP + MySQL. Percebi que meu site ficou muito instável depois que eu instalei o Limesurvey. as tabelas myisam travaram a cada 3-4 dias.

Eu copiei os logs do mysql aqui:

110812 04:10:47  mysqld started
110812  4:10:47 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.0.77'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  Source distribution
110815 23:11:02  mysqld started
110815 23:11:02 [Warning] 'user' entry '[email protected]' ignored in --skip-name-resolve mode.
110815 23:11:02 [Warning] 'user' entry '@localhost.localdomain' ignored in --skip-name-resolve mode.
110815 23:11:02 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.0.77'  socket: '/var/lib/mysql/mysql.sock'  port: 0  Source distribution
110815 23:14:10 [ERROR] /usr/libexec/mysqld: Table './DBXXX/TableXXX' is marked as crashed and should be repaired

Como você pode ver, o mysqld foi iniciado na porta 3306 em 08/12/2011 e estava funcionando para o > 3.5. dias. Em seguida, outro mysqd foi iniciado na port0 em 15/08.

Eu suspeito que ambos os processos do MySQL acessam as mesmas tabelas do banco de dados e causaram a falha. Eu nunca configurei múltiplos processos mysql no meu servidor web e não sei porque outro mysqld foi iniciado na porta 0.

Aqui está a parte do arquivo my.cnf que pode estar relacionada:

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
old_passwords=1
skip-locking
skip-name-resolve
local-infile = 0
skip-networking
myisam-recover=backup,force
key_buffer_size = 375M

max_connections = 1200

thread_cache_size=60

interactive_timeout=1200

wait_timeout=1200

max_connect_errors=50

max_allowed_packet = 64M

myisam_sort_buffer_size = 64M

query_cache_limit=1M

query_cache_size=64M

query_cache_type=1

read_buffer_size = 256k

read_rnd_buffer_size = 512k

sort_buffer_size = 512k

join_buffer_size=512K

tmp_table_size = 64M # default is 32M = 33554432      

max_heap_table_size = 64M #recommend same size as tmp_table_size

bulk_insert_buffer_size = 64M     #recommend same size as tmp_table_size

table_cache=512

thread_concurrency=4 

skip-innodb

[myisamchk]

key_buffer=64M

sort_buffer=64M

read_buffer=16M

write_buffer=16M

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

[mysqldump]

quick

quote-names

max_allowed_packet=128M

A configuração do myisam não parece estar funcionando. Eu tive que consertar as tabelas com problemas usando a função Repair DB no PhpMyadmin depois que meu site inteiro caiu. Seria muito útil se eu pudesse fazer o trabalho de recuperação do myisam

Outra questão que notei é que leva muito tempo para parar o serviço mysqld. e a resposta sempre diz "Falhou", mas eu ainda consigo iniciar o serviço mysqld.

Versão do MySQl é 5.0.77

Parece que ainda tenho alguns dias até que esse problema ocorra novamente. Alguém por favor pode me ajudar?

    
por user895701 16.08.2011 / 01:24

2 respostas

1

socket: '/var/lib/mysql/mysql.sock'  port: 0  Source distribution

Parece que quando você usa a opção --skip-networking você verá esta mensagem porque você deve se conectar através de pipe de nomes ou soquete do Unix.

Você disse que tem vários processos, mostre a saída de ps -ef | grep mysql e my.cnf dos processos restantes.

    
por 16.08.2011 / 05:14
0

Existem muitas "contas" que tentam fazer login a cada vez que um banco de dados é acessado? Eles não carregam sessões persistentes?

    
por 16.08.2011 / 04:53

Tags