Ошибка MySQL 2006: сервер mysql ушел

Я запускаю сервер в своем офисе для обработки некоторых файлов и отправки результатов на удаленный сервер MySQL.

Обработка файлов занимает некоторое время, и процесс замирает на полпути со следующей ошибкой:

2006, MySQL server has gone away 

Я слышал о настройке MySQL, wait_timeout , но мне нужно изменить это на сервере в моем офисе или удаленном сервере MySQL?

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

См. PHP: mysqli_ping для получения информации об этом.

Я встречал это несколько раз, и обычно я нашел ответ как очень невысокую настройку по умолчанию max_allowed_packet . /etc/my.cnf его в /etc/my.cnf (под [mysqld] ) до 8 или 16M обычно исправляет его.

 [mysqld] max_allowed_packet=16M 

Примечание. Это может быть установлено на вашем сервере по мере его запуска.

Используйте set global max_allowed_packet=104857600 . Это устанавливает значение 100 МБ.

У меня была та же проблема, но изменение max_allowed_packet в файле my.ini/my.cnf в [mysqld] сделало трюк.

добавить строку

max_allowed_packet = 500M

теперь restart the MySQL service только вы закончите.

Я использовал следующую команду в командной строке MySQL для восстановления базы данных MySQL размером более 7 ГБ, и она работает.

 set global max_allowed_packet=268435456; 

В MAMP (non-pro version) я добавил

 --max_allowed_packet=268435456 

к ...\MAMP\bin\startMysql.sh

Кредиты и более подробная информация здесь

Ошибка: 2006 ( CR_SERVER_GONE_ERROR )

Сообщение: сервер MySQL ушел

Как правило, вы можете повторно подключиться, а затем снова выполнить запрос, чтобы решить эту проблему – попробуйте 3-4 раза, прежде чем полностью отказаться.

Я предполагаю, что вы используете PDO. Если это так, вы поймаете исключение PDO, увеличьте счетчик, а затем повторите попытку, если счетчик находится под порогом.

Если у вас есть запрос, вызывающий таймаут, вы можете установить эту переменную, выполнив:

 SET @@GLOBAL.wait_timeout=300; SET @@LOCAL.wait_timeout=300; -- OR current session only 

Где 300 – это количество секунд, которое, по вашему мнению, максимальное время, которое может потребоваться запросу.

Дополнительная информация о том, как бороться с проблемами подключения Mysql.

EDIT: Два других параметра, которые вы, возможно, захотите использовать, – net_write_timeout и net_read_timeout .

Эта ошибка возникает из-за истечения срока ожидания wait_timeout.

Просто зайдите на сервер mysql, проверьте его wait_timeout:

mysql> SHOW VARIABLES LIKE ‘wait_timeout’

mysql> set global wait_timeout = 600 # 10 минут или максимальное время ожидания, которое вам нужно

http://sggoyal.blogspot.in/2015/01/2006-mysql-server-has-gone-away.html

Я получал такую ​​же ошибку на моем сервере DigitalOcean Ubuntu.

Я попытался изменить параметры max_allowed_packet и wait_timeout, но ни один из них не исправил его.

Оказывается, мой сервер вышел из ОЗУ. Я добавил файл подкачки 1GB и исправил свою проблему.

Проверьте свою память free -h чтобы узнать, вызывает ли это это.

В Windows эти парни, использующие xampp, должны использовать этот путь xampp / mysql / bin / my.ini и изменить max_allowed_packet (в разделе [mysqld]) на ваш размер выбора. например

 max_allowed_packet=8M 

Опять же на php.ini (xampp / php / php.ini) измените upload_max_filesize размер выбора. например

 upload_max_filesize=8M 

Дал мне головную боль на некоторое время, пока я не узнал об этом. Надеюсь, поможет.

Для Vagrant Box убедитесь, что вы выделяете достаточное количество памяти в поле

 config.vm.provider "virtualbox" do |vb| vb.memory = "4096" end 

В маловероятном сценарии у вас есть межсетевой экран между клиентом и сервером, который заставляет TCP-сброс в соединение.

У меня была эта проблема, и я обнаружил, что наш корпоративный F5-брандмауэр был настроен на прекращение неактивных сессий, которые простаивают более 5 минут.

Еще раз, это маловероятный сценарий.

Если вы используете 64Bit WAMPSERVER, выполните поиск нескольких вхождений max_allowed_packet, потому что WAMP использует значение, установленное в [wampmysqld64], а не значение, установленное в [mysqldump], которое для меня было проблемой, я обновлял неправильный. Установите это как-то вроде max_allowed_packet = 64M.

Надеюсь, это поможет другим пользователям Wampserver.

раскомментируйте ligne ниже в my.ini/my.cnf , это разделит ваш большой файл на меньшую часть

 # binary logging format - mixed recommended # binlog_format=mixed 

К

 # binary logging format - mixed recommended binlog_format=mixed 

В моем случае это было низкое значение переменной open_files_limit , которая блокировала доступ mysqld к файлам данных.

Я проверил его с помощью:

 mysql> SHOW VARIABLES LIKE 'open%'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | open_files_limit | 1185 | +------------------+-------+ 1 row in set (0.00 sec) 

После того как я изменил переменную на большую ценность, наш сервер снова был жив:

 [mysqld] open_files_limit = 100000 

Для меня это была проблема с ОЗУ.

У меня была такая же проблема даже на сервере с 12 ядрами процессора и 32 ГБ оперативной памяти. Я исследовал больше и пытался освободить оперативную память. Вот команда, которую я использовал на Ubuntu 14.04 для освобождения оперативной памяти:

 sync && echo 3 | sudo tee /proc/sys/vm/drop_caches 

И все это исправлено. Я устанавливал его под cron для запуска каждый час.

 crontab -e 0 * * * * bash /root/ram.sh; 

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

 free -h 

И вы получите что-то вроде этого:

  total used free shared buffers cached Mem: 31G 12G 18G 59M 1.9G 973M -/+ buffers/cache: 9.9G 21G Swap: 8.0G 368M 7.6G 

Я нашел решение «# 2006 – сервер MySQL ушел» этой ошибки. Решение – вам просто нужно проверить два файла

  1. config.inc.php
  2. config.sample.inc.php

Путь этих файлов в windowsх

 C:\wamp64\apps\phpmyadmin4.6.4 

В этих двух файлах значение этого:

 $cfg['Servers'][$i]['host']must be 'localhost' . 

В моем случае это было:

 $cfg['Servers'][$i]['host'] = '127.0.0.1'; 

измените его на:

 "$cfg['Servers'][$i]['host']" = 'localhost'; 

Удостоверьтесь в обоих:

  1. config.inc.php
  2. config.sample.inc.php файлы должны быть «localhost».

И последний набор:

 $cfg['Servers'][$i]['AllowNoPassword'] = true; 

Затем перезапустите Wampserver.


Чтобы изменить имя пользователя и пароль phpmyadmin

Вы можете напрямую изменить имя пользователя и пароль phpmyadmin через файл config.inc.php

Эти две линии

 $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = ''; 

Здесь вы можете указать новое имя пользователя и пароль. После изменений сохраните файл и перезапустите WAMP-сервер.

На моем рабочем столе Ubuntu у меня появилось сообщение Error 2006 в другом приложении для клиентов MySQL. Оказалось, что моя версия драйвера JDBC слишком стар.

Это может быть проблемой вашего размера файла .sql.

Если вы используете xampp. Перейдите на панель управления xampp -> Нажмите MySql config -> Откройте my.ini.

Увеличьте размер пакета.

 max_allowed_packet = 2M -> 10M 

Обычно это указывает на проблемы подключения к серверу MySQL или тайм-ауты. Обычно можно решить, изменив wait_timeout и max_allowed_packet в my.cnf или аналогичном.

Я бы предложил следующие значения:

wait_timeout = 28800

max_allowed_packet = 8M

Для пользователей, использующих XAMPP, в C: \ xampp \ mysql \ bin \ my.ini имеется 2 параметра max_allowed_packet.

Всегда полезно проверять журналы сервера Mysql, почему он ушел.

Это скажет вам.

Если вы знаете, что некоторое время находитесь в автономном режиме, вы можете закрыть свое соединение, выполнить обработку, повторно подключить и написать свои отчеты.

Давайте будем гением компьютера.