Недавно я начал получать сообщение об ошибке каждый раз, когда пытаюсь добавить контент независимо от его типа. Это ошибка, которая отображается в браузере:
При обработке исключения выдается дополнительное необработанное исключение.
Исходное исключение PDO: SQLSTATE [HY000]: Общая ошибка: 2006 Сервер MySQL отключен: ВЫБЕРИТЕ СЧЕТЧИК (cid) ОТ {комментарий} ГДЕ status =: status; Массив ([: status] => 0) в comment_count_unpublished () (строка 313 из /Applications/MAMP/htdocs/modules/comment/comment.module).
дополнительный
PDOException: SQLSTATE [HY000]: общая ошибка: 2006 сервер MySQL пропал: INSERT INTO {watchdog} (uid, тип, сообщение, переменные, серьезность, ссылка, местоположение, реферер, имя хоста, временная метка) VALUES (: db_insert_placeholder_0,: db_insert_placeholder_1 ,: db_insert_placeholder_2,: db_insert_placeholder_3,: db_insert_placeholder_4,: db_insert_placeholder_5,: db_insert_placeholder_6,: db_insert_placeholder_7,: db_insert_placeholder_8,: db_insert_placeholder9) Array ([: db_insert_placeholder_0] => 1 [: db_insert_placeholder_1] => php [: db_insert_placeholder_2] =>% type:! Message в функции% (строка% строки файла%). [: Db_insert_placeholder_3] => a: 6: { s: 5: "% type"; s: 12: "PDOException"; s: 8: "! message"; s: 154: "SQLSTATE [HY000]: общая ошибка: 2006 сервер MySQL удален: ВЫБЕРИТЕ СЧЕТ (cid) ОТ {комментарий} ГДЕ status =: status; Array ([: status] = & gt; 0) "; s: 9:"% function "; s: 27:" comment_count_unpublished () "; s: 5:"% file "; s: 56:" / Applications / MAMP /htdocs/modules/comment/comment.module";s:5:"%line";i:313;s:14:"severity_level";i:3;} [: db_insert_placeholder_4] => 3 [: db_insert_placeholder_5] = > [: db_insert_placeholder_6] =>http: // localhost: 8888 /? q = узел% 2Fadd% 2Farcade-project & amp ; [: db_insert_placeholder_7] => http: // localhost: 8888 / [: db_insert_placeholder_8] => 127.0.0.1 [: db_insert_placeholder_9] => 1338336955) в dblog_watchdog () (строка 154 из / Applications / MAMP / htdocs / modules / db) dblog.module).
Я также получаю следующую ошибку в моем файле ошибок php:
Неустранимая ошибка PHP: необработанное исключение «PDOException» с сообщением «SQLSTATE [HY000]: общая ошибка: сервер MySQL 2006 исчез» в /Applications/MAMP/htdocs/includes/database/database.inc:2136
Трассировка стека:
0 /Applications/MAMP/htdocs/includes/database/database.inc(2136): PDOStatement-> execute (Array)
1 /Applications/MAMP/htdocs/includes/database/database.inc(664): DatabaseStatementBase- > execute (Array, Array)
2 /Applications/MAMP/htdocs/includes/database/database.inc(2315): DatabaseConnection-> query ('SELECT expire, ...', Array, Array)
3 / Applications / MAMP / htdocs / includes / lock.inc (167): db_query ('SELECT expire, ...', Array)
4 /Applications/MAMP/htdocs/includes/lock.inc(146): lock_may_be_available ('theme_registry: ...') )
5 /Applications/MAMP/htdocs/includes/theme.inc(447): lock_acquire ('theme_registry: ...')
6 /Applications/MAMP/htdocs/includes/bootstrap.inc(427): ThemeRegistry-> set ( Array)
7 [внутренняя функция]: DrupalCacheArray -> __ destruct ()
8 {main}, добавляемый в /Applications/MAMP/htdocs/includes/database/database.inc в строке 2136
У меня небольшие проблемы с расшифровкой этих сообщений об ошибках. Может ли кто-нибудь помочь мне понять, что здесь происходит?
Эта ошибка MySQL / MariaDB:
в основном означает, что клиент не может отправить вопрос на сервер .
Это может произойти из-за временного сбоя, слишком большого или неправильного запроса SQL, неправильной настройки вашего сервера или ограничения вашего хостинг-провайдера.
В общем, эта ошибка может быть результатом нескольких вещей, таких как:
запрос к серверу неверный или слишком большой,
Решение: увеличить
max_allowed_packet
переменную .Примечание: убедитесь, что переменная находится в
[mysqld]
разделе, а не[mysql]
.Примечание. Не забудьте перезапустить сервер MySQL / MariaDB.
Вы получили тайм-аут из соединения TCP / IP на стороне клиента.
Решение: увеличить
wait_timeout
переменную .Вы попытались выполнить запрос после того, как соединение с сервером было закрыто.
Решение: Логическая ошибка в приложении должна быть исправлена.
Ошибка поиска имени хоста (например, проблема с DNS-сервером) или сервер был запущен с
--skip-networking
параметром.Другая возможность заключается в том, что ваш брандмауэр блокирует порт MySQL (например, 3306 по умолчанию).
Работающий поток был уничтожен, поэтому повторите попытку.
Вы столкнулись с ошибкой, когда сервер погиб при выполнении запроса.
Клиент, работающий на другом хосте, не имеет необходимых прав для подключения.
И многое другое, так что узнайте больше на: B.5.2.9 Сервер MySQL ушел .
Для получения более подробной информации, пожалуйста, проверьте ваш MySQL или системные журналы (например
/var/log/messages
).Для отладки сервера или клиента MySQL, пожалуйста, проверьте: 26.5 Отладка и портирование MySQL .
Если вы пытаетесь импортировать базу данных из файла с помощью команды
drush
илиmysql
, вы можете:Добавьте опцию force (
-f
) дляmysql
продолжения и выполнения остальных запросов.Это полезно, если в базе данных есть несколько больших запросов, связанных с кешем, которые большие, но все равно не актуальны.
Используя
drush
, попробуйте:cat foo.sql | $(drush sqlconnect) -f
Попробуйте применить
--max-allowed-packet
опцию дляmysql
с меньшими значениями.Увеличьте
max_allowed_packet
иwait_timeout
в конфигурации вашего сервера (например~/.my.cnf
).Снова создайте дамп исходной базы данных, используя
--skip-extended-insert
опцию, чтобы разбить большие запросы. Затем импортируйте файл снова.Смотрите также: ОШИБКА 2006 (HY000): сервер MySQL исчез
источник
Ответ, который обычно дает @Clive, имеет место, но может быть и дополнительная причина, особенно с формами добавления узлов.
Формы добавления узлов обычно имеют большой размер, и для их обработки может потребоваться много памяти (особенно, если во время сохранения выполняется обработка изображений, например, с помощью модулей обрезки). Если серверу не хватает памяти, процесс mysqld может быть уничтожен, что приводит к тому же самому «пропавшему» сообщению.
Ключ в том, чтобы посмотреть в журналах сервера. На компьютере с CentOS вы можете увидеть следующую запись в / var / log / messages
Решение здесь состоит в том, чтобы либо добавить больше оперативной памяти, либо добавить / увеличить своп.
источник