- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Паршу один государственный сайт, нахожу нужные данные, сверяюсь со своей базой и если нужно записываю данные. Несколько раз записи прошли нормально, но теперь стабильно вываливается
General error: 2006 MySQL server has gone away
Причем в ответ на простейший селект и у меня закончились догадки почему это может быть. Сервер не перегружен, база тоже (статистика мунин показывает минимум загрузки). Этот же селект которые вызвает ошибку в ПхпМайдамин с тем же айди тут же (если проверить вручную) отрабатывает за 0.001 сек.
Что может вызывать ошибку?
Этот же селект
У тебя ошибка выдаётся не на select, а на insert.
У тебя ошибка выдаётся не на select, а на insert.
Нет - именно на селект, я уже проверил это, был второй try-catch, я его просто убрал.
У меня одна догадка - может первый же селект в цикле вызывает открытие соединения с базой, но я его не закрываю и затем оно и закрывается по таймауту? Нужно ли закрывать соединение в PDO ?
вроде нет, сделал
не помогло
У меня одна догадка - может первый же селект в цикле вызывает открытие соединения с базой, но я его не закрываю и затем оно и закрывается по таймауту? Нужно ли закрывать соединение в PDO ?
Сколько времени работает скрипт?
Если долго, то да, нужно закрывать соединение и открывать заново.
Это для долгого консольного выполнения скрипта в основном.
Сколько времени работает скрипт?
Если долго, то да, нужно закрывать соединение и открывать заново.
Это для долгого консольного выполнения скрипта в основном.
до ошибки минуты 2-3
до ошибки минуты 2-3
Можно поколдовать со значением переменной wait_timeout в mysql, если оно слишком низкое
Все таки нужно было закрывать соединение. Закрыл его перед циклом, и стал открывать уже в каждой итерации (и закрывать в конце) и ошибка пропала.
Странно, впервые такое приходится делать
Можно использовать постоянное соединение MySQL. В PDO за это отвечает ATTR_PERSISTENT. Передавайте этот атрибут прямо в конструктор 😉
И в следующий раз показывайте реальный код, чтобы участники форума не домысливали то, что могло быть представлено наглядно.
Все таки нужно было закрывать соединение. Закрыл его перед циклом, и стал открывать уже в каждой итерации (и закрывать в конце) и ошибка пропала.
Очень тупая реализация если честно, лучше уж тогда вначале цикла сделать запрос "select 1" и в catch если упало с SQLException сделать реконнект, чем каждый цикл подключаться и отключаться, там же оверхед нифиговый так то