MySQL error 2006: сервер mysql исчез - PullRequest
206 голосов
/ 30 октября 2011

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

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

2006, MySQL server has gone away

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

Ответы [ 26 ]

1 голос
/ 09 мая 2019

MAMP 5.3, вы не найдете my.cnf, и добавление их не работает, так как max_allowed_packet хранится в переменных.

Одним из решений может быть:

  1. Перейти к http://localhost/phpmyadmin
  2. Перейти на вкладку SQL
  3. Запустите SHOW VARIABLES и проверьте значения, если они маленькие, тогда запустите с большими значениями
  4. Запустите следующий запрос, для max_allowed_packet установлено значение 7 ГБ:

    set global max_allowed_packet = 268435456;

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

set global wait_timeout = 600;
set innodb_log_file_size =268435456;
1 голос
/ 21 февраля 2019

Существует несколько причин этой ошибки.

MySQL / MariaDB связанный:

  • wait_timeout - Время в секундах, в течение которого сервер ожидает подключения, чтобы активироваться перед закрытиемit.
  • interactive_timeout - время в секундах, в течение которого сервер ожидает интерактивного соединения.
  • max_allowed_packet - максимальный размер в байтах пакета или сгенерированной / промежуточной строки.Максимально большой BLOB-объект, кратный 1024.

Пример my.cnf :

[mysqld]
# 8 hours
wait_timeout = 28800
# 8 hours
interactive_timeout = 28800
max_allowed_packet = 256M

Относится к серверу:

  • Ваш сервер заполнен памятью - проверьте информацию об оперативной памяти с помощью free -h

Связанный с фреймворком:

  • Проверьте настройки вашего фреймворка.Django, например, использует CONN_MAX_AGE (см. документы )

Как его отладить:

0 голосов
/ 05 мая 2019

Существует более простой способ, если вы используете XAMPP. Откройте панель управления XAMPP и нажмите кнопку конфигурации в разделе mysql.
enter image description here

Теперь нажмите на my.ini, и он откроется в редакторе. Обновите max_allowed_packet до нужного вам размера.

enter image description here

Затем перезапустите службу mysql. Нажмите на остановку на сервисе Mysql, нажмите «Пуск» снова. Подождите несколько минут. enter image description here enter image description here

Затем попробуйте снова выполнить запрос Mysql. Надеюсь, это сработает.

0 голосов
/ 21 сентября 2018

Эта ошибка возникает в основном по двум причинам.

  1. У вас слишком мало ОЗУ.
  2. Соединение с базой данных закрывается при попытке подключения.

Вы можете попробовать этот код ниже.

# Simplification to execute an SQL string of getting a data from the database
def get(self, sql_string, sql_vars=(), debug_sql=0):
    try:            
        self.cursor.execute(sql_string, sql_vars)
        return self.cursor.fetchall()
    except (AttributeError, MySQLdb.OperationalError):
        self.__init__()
        self.cursor.execute(sql_string, sql_vars)
        return self.cursor.fetchall()

Он устраняет ошибку независимо от причины, особенно по второй.

Если она вызвана нехваткой ОЗУ, вы либонеобходимо повысить эффективность соединения с базой данных из кода, из конфигурации базы данных или просто увеличить ОЗУ.

0 голосов
/ 26 июня 2018

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

0 голосов
/ 30 октября 2011

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

...