mysqldump não é capaz de exportar um banco de dados específico, o phpMyAdmin falha

1

Estou tendo problemas com um banco de dados no meu servidor (Nota: Todos os outros bancos de dados funcionam bem).

Quando tento exportar com mysqldump , recebo este erro:

# mysqldump -u root -pXXXXXXXXX databasename > /root/databasename.sql

mysqldump: Couldn't execute 'show table status like 'apps'': Lost connection to MySQL server during query (2013)

Além disso, o phpMyAdmin gera um erro ao selecionar este banco de dados e imediatamente efetua logout. No entanto, o site que usa esse banco de dados funciona bem. Eu também posso executar SELECT declarações na tabela chamada "apps" do shell do MySQL.

Eu tentei reiniciar o daemon do MySQL, bem como REPAIR DATABASE e REPAIR TABLE , mas o problema ainda persiste. Eu tive esse problema antes, então desapareceu de alguma forma sem que eu fizesse nada para resolver o problema. Agora, o problema está de volta e simplesmente não consigo criar um backup desse banco de dados.

Software usado

  • Debian 6.0.7 x64
  • MySQL 5.1.66-0

Versão do MySQL:

mysql> SHOW VARIABLES LIKE "%version%";
+-------------------------+-------------------+
| Variable_name           | Value             |
+-------------------------+-------------------+
| protocol_version        | 10                |
| version                 | 5.1.66-0+squeeze1 |
| version_comment         | (Debian)          |
| version_compile_machine | x86_64            |
| version_compile_os      | debian-linux-gnu  |
+-------------------------+-------------------+

mensagem de erro phpMyAdmin , ao mudar para o banco de dados

SELECT  'comment' 
FROM 'phpmyadmin'.'pma_column_info'
WHERE db_name = 'databasename'
AND table_name =  ''
AND column_name = '(db_comment)'

MySQL said: 

#2006 - MySQL server has gone away
    
por bytecode77 29.06.2013 / 20:45

2 respostas

1

As razões mais comuns (e correções) para o servidor MySQL desapareceram (erro 2006) são:

O servidor expirou e fechou a conexão. Como corrigir:

verifique

wait_timeout variable

no arquivo de configuração my.cnf é grande o suficiente.

No Debian:

 sudo nano /etc/mysql/my.cnf, 

conjunto     wait_timeout = 600 segundos

sudo /etc/init.d/mysql restart. 

O valor padrão para wait_timeout pode ser em torno de 28800 segundos (8 horas).

A segunda coisa a verificar é

O servidor descartou um pacote incorreto ou muito grande. Se o mysqld recebe um pacote que é muito grande ou incorreto, ele assume que algo deu errado com o cliente e fecha a conexão. Você pode aumentar o limite máximo de tamanho do pacote aumentando o valor de max_allowed_packet no arquivo my.cnf.

No Debian:

  sudo nano /etc/mysql/my.cnf, 

  max_allowed_packet = 64M 

então

  sudo /etc/init.d/mysql restart.
    
por 02.07.2013 / 14:20
1

Parece ser um problema no nível físico acessar arquivos de banco de dados no disco.

Eu sugiro tentar um REPAIR TABLE antes de tentar o mysqldump para ter certeza de que os arquivos da tabela do banco de dados estão. Verifique também o log de erros do mysql para ter certeza de que está identificando o problema correto. Isso funcionará para uma tabela MyISAM. Se você está trabalhando com tabela InnoDB tente primeiro fazer um:

ALTER TABLE tablename ENGINE=MyISAM;
REPAIR TABLE tablename;
ALTER TABLE tablename ENGINE=InnoDB;

Mais informações sobre a sintaxe do comando aqui: link

    
por 01.07.2013 / 15:18