Recentemente, comecei a receber um erro toda vez que tento adicionar um conteúdo, independentemente do tipo. Este é o erro que aparece no navegador:
Exceção não capturada adicional lançada ao manipular exceção.
PDOException original: SQLSTATE [HY000]: Erro geral: o servidor MySQL 2006 foi desativado: SELECT COUNT (cid) FROM {comment} WHERE status =: status; Matriz ([: status] => 0) em comment_count_unpublished () (linha 313 de /Applications/MAMP/htdocs/modules/comment/comment.module).
Adicional
PDOException: SQLSTATE [HY000]: Erro geral: o servidor MySQL 2006 foi encerrado: INSERT INTO {watchdog} (uid, tipo, mensagem, variáveis, severidade, link, local, referenciador, nome do host, registro de data e hora) VALUES (: db_insert_placeholder_0,: db_insert_placeholder_1 ,: db_insert_placeholder_2,: db_insert_placeholder_3,: db_insert_placeholder_4,: db_insert_placeholder_5,: db_insert_placeholder_6,: db_insert_placeholder_7,: db_insert_placeholder_8,: db_insert_placeholder_9; Matriz ([: db_insert_placeholder_0] => 1 [: db_insert_placeholder_1] => php [: db_insert_placeholder_2] =>% type:! Message na% function (linha% linha do% file). [: Db_insert_placeholder_3] => a: 6: { s: 5: "% type"; s: 12: "PDOException"; s: 8: "! message"; s: 154: "SQLSTATE [HY000]: Erro geral: 2006 o servidor MySQL foi desativado: SELECIONE A CONTAGEM (cid) FROM {comment} WHERE status =: status; Matriz ([: status] = & gt; 0) "; s: 9:"% function "; s: 27:" comment_count_unpublished () "; s: 5:"% file "; s: 56:" / Applications / MAMP /htdocs/modules/comment/comment.module";s:5:"%line";i:313;s:14:"severity_level";i:3;} [: db_insert_placeholder_4] => 3 [: db_insert_placeholder_5] = > [: db_insert_placeholder_6] =>http: // localhost: 8888 /? q = nó% 2Fadd% 2Farcade-project & amp ; [: db_insert_placeholder_7] => http: // localhost: 8888 / [: db_insert_placeholder_8] => 127.0.0.1 [: db_insert_placeholder_9] => 1338336955) em dblog_watchdog () (linha 154 de / Aplicativos / MAMP / htdocs / modules / dblog / dblog.module).
Eu também recebo o seguinte erro no meu arquivo de erro php:
Erro fatal do PHP: exceção não capturada 'PDOException' com a mensagem 'SQLSTATE [HY000]: Erro geral: o servidor MySQL 2006 foi desativado' em /Applications/MAMP/htdocs/includes/database/database.inc:2136
Rastreio de pilha:
0 /Applications/MAMP/htdocs/includes/database/database.inc(2136): PDOStatement-> execute (Array)
1 /Applications/MAMP/htdocs/includes/database/database.inc(664): DatabaseStatementBase- > execute (Matriz, Matriz)
2 /Applications/MAMP/htdocs/includes/database/database.inc(2315): DatabaseConnection-> query ('SELECT expirar, ...', Matriz, Matriz)
3 / Applications / MAMP / htdocs / includes / lock.inc (167): db_query ('SELECT expire, ...', Array)
4 /Applications/MAMP/htdocs/includes/lock.inc(146): lock_may_be_available ('theme_registry: ...' )
5 /Applications/MAMP/htdocs/includes/theme.inc(447): lock_acquire ('theme_registry: ...')
6 /Applications/MAMP/htdocs/includes/bootstrap.inc(427): ThemeRegistry-> set ( Matriz)
7 [função interna]: DrupalCacheArray -> __ destruct ()
8 {main} lançada em /Applications/MAMP/htdocs/includes/database/database.inc na linha 2136
Estou com problemas para decifrar essas mensagens de erro. Alguém poderia me ajudar a entender o que está acontecendo aqui?
Este erro do MySQL / MariaDB:
significa basicamente que o cliente não pôde enviar uma pergunta ao servidor .
Isso pode acontecer por falha temporária, consulta SQL muito grande ou inválida, configuração incorreta do servidor ou limitação do provedor de hospedagem.
Em geral, esse erro pode ser resultado de várias coisas, como:
uma consulta ao servidor está incorreta ou muito grande,
Solução: Aumente a
max_allowed_packet
variável .Nota: Verifique se a variável está na
[mysqld]
seção, não[mysql]
.Nota: Não esqueça de reiniciar o servidor MySQL / MariaDB.
Você recebeu um tempo limite da conexão TCP / IP no lado do cliente.
Solução: Aumente a
wait_timeout
variável .Você tentou executar uma consulta após o fechamento da conexão com o servidor.
Solução: Um erro lógico no aplicativo deve ser corrigido.
Falha na pesquisa do nome do host (por exemplo, problema no servidor DNS) ou o servidor foi iniciado com a
--skip-networking
opçãoOutra possibilidade é que seu firewall bloqueie a porta MySQL (por exemplo, 3306 por padrão).
O encadeamento em execução foi interrompido, portanto, tente novamente.
Você encontrou um erro em que o servidor morreu durante a execução da consulta.
Um cliente executando em um host diferente não possui os privilégios necessários para se conectar.
E muito mais, então aprenda mais em: B.5.2.9 O servidor MySQL foi embora .
Para mais detalhes, verifique seu MySQL ou logs do sistema (por exemplo
/var/log/messages
).Para depurar o servidor ou cliente MySQL, verifique: 26.5 Depurando e portando o MySQL .
Caso esteja tentando importar o banco de dados do arquivo usando
drush
oumysql
comando, você pode:Adicione uma opção de força (
-f
) paramysql
prosseguir e executar o restante das consultas.Isso é útil se o banco de dados tiver algumas consultas grandes relacionadas ao cache, que são grandes, mas que não são relevantes de qualquer maneira.
Usando
drush
, tente:cat foo.sql | $(drush sqlconnect) -f
Tente aplicar a
--max-allowed-packet
opçãomysql
com valores menores.Aumente
max_allowed_packet
ewait_timeout
na configuração do seu servidor (por exemplo~/.my.cnf
).Despejar o banco de dados original novamente usando a
--skip-extended-insert
opção para dividir as consultas grandes. Em seguida, importe o arquivo novamente.Veja também: ERRO 2006 (HY000): O servidor MySQL foi embora
fonte
A resposta que o @Clive dá normalmente é o caso, mas pode haver uma causa adicional, especialmente nos formulários de adição de nó.
Os formulários de adição de nó geralmente são grandes e o processamento deles pode usar muita memória (especialmente se houver algum processamento de imagem durante o salvamento, como nos módulos de corte). Se o servidor ficar sem memória, o processo mysqld pode ser eliminado, o que resulta na mesma mensagem "foi embora".
A pista é procurar nos logs do servidor. Em uma máquina CentOS, você pode ver a seguinte entrada em / var / log / messages
A solução aqui é adicionar mais RAM ou adicionar / aumentar a troca.
fonte