Рейтинг:0

Общая ошибка: 2006 сервер MySQL ушел. Все настройки в порядке

флаг it

У меня 2 линукс сервера. 1 работает apache2 с приложением PHP, а другой работает с mysql 5.7. (так что удаленное подключение к БД)

Приложения PHP пытались создать BIGBLOB из файла (90 МБ) и сохранить его в SQL.

Но я получаю эти ошибки: (это происходит только с БОЛЬШИМ BLOB) PHP:

[PDOException] SQLSTATE [HY000]: общая ошибка: сервер MySQL 2006 ушел

MySQL:

2022-03-24T14:22:41.443626Z 268701 [Примечание] Прерванное соединение 268701 с базой данных: «ошибка» пользователя: «пользователь» хост: «subdomain.hostname.com» (ошибка при чтении пакетов связи)

Я обыскал весь интернет. я сделал следующее обновление: max_allowed_packet до 1 ГБ, я проверил: wait_timeout и Interactive_timeout они в порядке (28880 секунд) Я добавил память подкачки. Ничего не работает. Любые идеи?

P.S. Кажется, связь обрывается где-то через 30 секунд. но я не могу сказать точно и почему.

Это настройки MySQL:

mysql> показать глобальные переменные, такие как "%timeout%";
+-----------------------------+-----------+
| Имя_переменной | Значение |
+-----------------------------+-----------+
| подключение_время ожидания | 10 |
| delayed_insert_timeout | 300 |
| have_statement_timeout | ДА |
| innodb_flush_log_at_timeout | 1 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | ВЫКЛ |
| интерактивный_тайм-аут | 28800 |
| lock_wait_timeout | 31536000 |
| net_read_timeout | 120 |
| net_write_timeout | 120 |
| rpl_stop_slave_timeout | 31536000 |
| slave_net_timeout | 60 |
| время_ожидания | 28800 |
+-----------------------------+-----------+

 макс_разрешенный_пакет | 1073741824 |

БАРАН:

              общее количество использованных бесплатных общих баффов/доступных кешей
Память: 7976 1056 256 1 6663 6630
Обмен: 10239 8 10231
Wilson Hauck avatar
флаг jp
Не могли бы вы опубликовать ТЕКСТ последних 50 строк вашего журнала ошибок из «сбойного» экземпляра?
Wilson Hauck avatar
флаг jp
Это может быть полезным URL-адресом для просмотра со многими перечисленными возможными причинами. https://severalnines.com/database-blog/common-mysql-error-got-error-reading-communication-packet
sav1sav avatar
флаг it
Какой именно журнал ошибок :)? Также я проверил эту ссылку раньше. Не помогло.
Wilson Hauck avatar
флаг jp
Запустите SELECT @@log_error; content - это место, где имя файла.
флаг ua
Давайте посмотрим на ПЕРЕМЕННЫЕ '%size'.
флаг ua
5.7 выпущен в 2016 году; в чем актуальность "2006"?
флаг ua
Это должно быть перенесено на dba.stackexchange.com.
Рейтинг:0
флаг ua

«Ушел» обычно вызван очень длинным запросом, который превышает некоторые настройки. Однако это пахнет другой проблемой. Размер по умолчанию для чтения строки составляет всего несколько МБ. Кроме того, я думаю, что существует жесткое ограничение в 16 МБ. То есть увеличения "..._size" будет недостаточно.

Что вы будете делать с 90MB BLOB? Подумайте о том, чтобы оставить его в файли поместите метаинформацию в базу данных. Даже для JPEG-файлов размером в МБ это практичнее и эффективнее, чем копаться в базе данных.

Далее обсудите BLOB, а также предоставьте ПОКАЗАТЬ СОЗДАТЬ ТАБЛИЦУ и некоторые из запросов, которые вы планируете использовать. Тогда у меня могут быть дополнительные советы.

Ответить или комментировать

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