it-swarm.com.ru

Получение ошибки MYSQL: "Код ошибки: 2006 - сервер MySQL исчез"

Я получаю следующее сообщение об ошибке при попытке импортировать базу данных MYSQL:

Error Code: 2013 - Lost connection to MySQL server during queryQuery:
Error Code: 2006 - MySQL server has gone away

Может кто-нибудь сообщить мне, что не так?

22
meetpd

Здесь вы можете прочитать больше об этой ошибке и различные способы, чтобы избежать/устранить ее

Из документов: 

Самая распространенная причина того, что MySQL-сервер исчез из-за ошибки, заключается в том, что сервер отключил тайм-аут и закрыл соединение

9
Tudor Constantin

Исследование показывает, что многие решения правильно говорят об установке max_allowed_packet и wait_timeout для mysql в my.cnf; Небольшое дополнение о том, что установка mysql по умолчанию на Mac OSX не включает этот файл. Сначала вам может понадобиться создать его в /etc/my.cnf (это проблема, только если вы используете установленную по умолчанию mysql вместо стека mamp или аналогичного)

содержание /etc/my.cnf, которое исправило эту проблему для меня ниже:

[mysqld]
max_allowed_packet= 64M
wait_timeout= 6000
34
Rafe Hatfield

Это часто случается, если ваш запрос INSERT представляет собой слишком большой однострочный оператор с несколькими строками.

3
Bimal Poudel

Попробуйте следующие исправления ошибок 2006:

  • Тайм-аут сервера и соединение закрыто. Как исправить: проверьте, что переменная wait_timeout в файле конфигурации my.cnf вашего mysqld достаточно велика. 

  • Сервер сбросил неверный или слишком большой пакет. Если mysqld получает слишком большой или неправильный пакет, он предполагает, что с клиентом что-то не так, и закрывает соединение. Вы можете увеличить максимальный размер пакета, увеличив значение max_allowed_packet в файле my.cnf.

3
CloudyMarble

Я перепробовал все решения и ничего не получилось
Я использую верстак для удаленного подключения hostgator
Я понял, что mysql server hostgator был версией 5.5 и в моей рабочей среде установлен до версии 5.6.
когда я установил верстак на 5,5 он начал работать 

редактировать/предпочтения/mysql/целевая версия по умолчанию
enter image description here

2
Rafael Sudbrack

Попробуйте перезапустить сервер MySQL. Возможно, сервер работает некорректно, но также отображается и запущенное средство уведомления sql.

2
andrew

есть много причин, по которым эта проблема возникает с вами, здесь вы можете найти все возможные причины, лично я боролся с размером пакета, но я обновил мой файл my.ini , но прежде чем сделать это, я проверил переменную max_allowed_packet, которая дала мне 1048576B = 1MB , и я обновил до 5MB . покажите переменные, где имя_переменной, например, «% packet%»

выберите 1048576/1024/1024

выберите 5242880/1024/1024

1
dennisbot

Покажите свои переменные mySql 

  • показывать переменные вроде 'max%'

  • установить глобальный max_allowed_packet = {PacketRANGE}; // вот так 10485760;

  • показать глобальные переменные, такие как 'max_all%';

Наслаждайтесь кодированием здесь

1
Shaam

В MySQL 5.7 эта ошибка может быть вызвана слишком большим коммуникационным пакетом:

Когда клиент MySQL или сервер mysqld получает пакет, размер которого превышает байты max_allowed_packet, он выдает ошибку ER_NET_PACKET_TOO_LARGE и закрывает соединение. У некоторых клиентов вы также можете получить потерянное соединение с сервером MySQL во время ошибки запроса, если коммуникационный пакет слишком большой.

Пакет в MySQL это:

Пакет связи - это отдельная инструкция SQL, отправленная на сервер MySQL, отдельная строка, отправленная клиенту, или двоичное событие журнала, отправленное с главного сервера репликации на подчиненное устройство.

Вы можете найти документ здесь: DOC
Вы должны попытаться установить для max_allowed_packet большее значение (значение по умолчанию - 4 МБ), чтобы определить, превышает ли ваш сценарий SQL этот размер. Вы можете установить это значение в файле опций, чтобы вам не приходилось настраивать его каждый раз. 
В Microsoft Windows Vista и более поздних версиях вы можете установить в файл max_allowed_packet 
% PROGRAMDATA%\MySQL\MySQL Server 5.7\my.ini 
или же 
% PROGRAMDATA%\MySQL\MySQL Server 5.7\my.cnf

где PROGRAMDATA = C:\ProgramData 
Подробнее (также для других S.O.) ЗДЕСЬ

1
alcott80

Вот альтернатива редактированию файла my.cnf. Вы можете установить значение глобальных переменных MySQL, войдя на сервер MySQL.

Вы можете проверить список всех глобальных переменных MySQL и их значения с помощью следующей команды:

$> mysqladmin variables -u YourMysqlUsername -p

Вы также можете проверить значение этих переменных, сначала войдя на сервер MySQL:

$> mysql -u YourMysqlUsername -p

mysql> SHOW VARIABLES;

Чтобы проверить конкретное значение переменной:

mysql> SHOW VARIABLES LIKE 'max_allowed_packet';

Чтобы решить MySQL Server Gone Away error, вам нужно увеличить значение переменной max_allowed_packet.

mysql> SET GLOBAL max_allowed_packet=1072731894;
mysql> quit

Теперь, когда вы снова входите в MySQL и проверяете значение max_allowed_packet, вы должны увидеть обновленное значение.

$> mysql -u YourMysqlUsername -p

mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
+--------------------+------------+
| Variable_name      | Value      |
+--------------------+------------+
| max_allowed_packet | 1072731136 |
+--------------------+------------+
1 row in set (0.00 sec)
0
Mukesh Chapagain

Как упомянул Тудор в своей реакции:

 The most common reason for the MySQL server has gone away error is that the 
 server timed out and closed the connection

Вам нужно изменить максимальное время выполнения и размер Вы можете использовать следующие команды для этого:

SET GLOBAL wait_timeout = 6000;
SET GLOBAL max_allowed_packet= 64M;

Это команды sql, поэтому вы можете выполнять их как команды noramal.

0
Peter verleg