workbench Código de erro: 2013. Conexão perdida com o servidor MySQL durante a consulta




workbench error code 2013 lost connection to mysql server during query (21)

Eu tenho o mesmo problema ao carregar um arquivo .csv. Converteu o arquivo em .sql.

Usando o comando abaixo eu consigo contornar esse problema.

mysql -u <user> -p -D <DB name> < file.sql

Espero que isso ajude.

Eu tenho o código de erro: 2013. Perdeu a conexão com o servidor MySQL durante erro de consulta quando eu tentei adicionar um índice para uma tabela usando o MySQL Workbench. Notei também que aparece sempre que executo a consulta longa.

Há tempo para aumentar o valor de tempo limite?


Por favor, desmarque as linhas limitadas em Editar → Preferências → Consultas SQL

porque Você deve definir as propriedades 'interactive_timeout' e 'wait_timeout' no arquivo de configuração mysql para os valores que você precisa.


Você deve definir as propriedades 'interactive_timeout' e 'wait_timeout' no arquivo de configuração mysql com os valores que você precisa.


Basta executar uma atualização do MySQL que irá reconstruir o mecanismo do innoDB, juntamente com a reconstrução de muitas tabelas necessárias para o funcionamento adequado do MySQL, como performance_schema , information_schema , etc.

Emita o comando abaixo do seu shell:

sudo mysql_upgrade -u root -p

Eu enfrentei esse mesmo problema. Eu acredito que isso acontece quando você tem chaves estrangeiras para tabelas maiores (o que leva tempo).

Eu tentei executar a instrução create table novamente sem as declarações de chave estrangeira e achei que funcionou.

Então, depois de criar a tabela, adicionei as restrições de chave estrangeira usando a consulta ALTER TABLE.

Espero que isso ajude alguém.


Eu corri para isso durante a execução de um procedimento armazenado que estava criando muitas linhas em uma tabela no banco de dados. Eu pude ver o erro vir logo após o tempo cruzar o limite de 30 segundos.

Eu tentei todas as sugestões nas outras respostas. Tenho certeza de que algumas ajudaram, no entanto, o que realmente fez com que funcionasse para mim foi mudar para o SequelPro da Workbench.

Eu estou supondo que era uma conexão do lado do cliente que eu não conseguia identificar no Workbench. Talvez isso ajude alguém também?


Novas versões do MySQL WorkBench têm a opção de alterar timeouts específicos.

Para mim, foi em Editar → Preferências → Editor SQL → Tempo limite de leitura da conexão DBMS (em segundos): 600

Alterou o valor para 6000.

Também limita as linhas limitadas, pois colocar um limite em todas as vezes que eu quiser pesquisar o conjunto de dados inteiro é cansativo.


Acontece que a nossa regra de firewall estava bloqueando minha conexão com o MYSQL. Depois que a política de firewall é levantada para permitir a conexão, consegui importar o esquema com êxito.


Verifique se os índices estão no lugar primeiro.

SELECT *
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = '<schema>'

Alterar o tempo de "tempo limite de leitura" em Editar-> Preferências-> Editor SQL-> sessão do MySQL


SET @@local.net_read_timeout=360;

Aviso: O seguinte não funcionará quando você estiver aplicando na conexão remota:

SET @@global.net_read_timeout=360;

Se você tiver esse problema durante a restauração de um arquivo de despejo grande e pode descartar o problema que tem alguma coisa a ver com a rede (por exemplo, execução no host local) que a minha solução poderia ser útil.

Meu mysqldump continha pelo menos um INSERT que era muito grande para o mysql computar. Você pode ver esta variável digitando show variables like "net_buffer_length"; dentro do seu mysql-cli. Você tem três possibilidades:

  • aumentar net_buffer_length dentro do mysql -> isso precisaria de uma reinicialização do servidor
  • criar dump com --skip-extended-insert , por inserir uma linha é usada -> embora esses dumps sejam muito mais legais de ler isso não é adequado para grandes lixões> 1GB porque ele tende a ser muito lento
  • criar dump com inserções estendidas (que é o padrão) mas limitar o net-buffer_length por exemplo com --net-buffer_length NR_OF_BYTES onde NR_OF_BYTES é menor que o servidor net_buffer_length -> acho que esta é a melhor solução, embora seja mais lenta a reinicialização do servidor .

Eu usei o seguinte comando mysqldump: mysqldump --skip-comments --set-charset --default-character-set=utf8 --single-transaction --net-buffer_length 4096 DBX > dumpfile


verifique sobre

OOM on /var/log/messages ,
modify innodb_buffer_pool_size value ; when load data , use 50% of os mem ; 

Espero que isto ajude


Vamos para:

Editar -> Preferências -> Editor SQL

Lá você pode ver três campos no grupo "Sessão MySQL", onde agora você pode definir os novos intervalos de conexão (em segundos).


Se todas as outras soluções aqui falharem - verifique seu syslog (/ var / log / syslog ou similar) para ver se o seu servidor está ficando sem memória durante a consulta.

Teve esse problema quando innodb_buffer_pool_size foi definido muito próximo da memória física sem um arquivo de swap configurado. O MySQL recomenda para uma configuração de servidor específica do banco de dados innodb_buffer_pool_size em um máximo de cerca de 80% da memória física , eu a defini para cerca de 90%, o kernel estava eliminando o processo mysql. Moveu innodb_buffer_pool_size novamente para cerca de 80% e isso resolveu o problema.


Vá para Workbench Editar → Preferências → Editor SQL → Tempo limite de leitura das conexões DBMS: até 3000. O erro não ocorreu mais.


Eu tive o mesmo problema - mas para mim a solução era um usuário do banco de dados com permissões muito restritas. Eu tive que permitir a habilidade de Execute na tabela mysql . Depois de permitir que eu não tivesse mais conexões perdidas


Eu sei que é antigo, mas no mac

1. Control-click your connection and choose Connection Properties.
2. Under Advanced tab, set the Socket Timeout (sec) to a larger value.

Se sua consulta tiver dados de blob, esse problema pode ser corrigido aplicando uma alteração my.ini conforme proposto nesta resposta :

[mysqld]
max_allowed_packet=16M

Por padrão, isso será 1M (o valor máximo permitido é 1024M). Se o valor fornecido não for um múltiplo de 1024K, ele será automaticamente arredondado para o múltiplo de 1024K mais próximo.

Enquanto o encadeamento referenciado é sobre o erro do MySQL 2006 , configurar o max_allowed_packet de 1M para 16M corrigiu o erro 2013 que apareceu para mim ao executar uma consulta longa.

Para usuários do WAMP: você encontrará o sinalizador na seção [wampmysqld] .


Se você estiver usando o SQL Work Bench, você pode tentar usar Indexação, adicionando um índice às suas tabelas, para adicionar um índice, clique no símbolo de chave inglesa (chave inglesa) na tabela, ele deve abrir a configuração da tabela, abaixo , clique na visualização de índice, digite um nome de índice e defina o tipo a indexar. Nas colunas de índice, selecione a coluna principal em sua tabela.

Faça o mesmo passo para outras chaves primárias em outras tabelas.


Inicie o servidor de banco de dados com a opção de net_read_timeout comando net_read_timeout / wait_timeout e um valor adequado (em segundos) - por exemplo: --net_read_timeout=100 .

Para referência veja here e here .





mysql-workbench