Что означает эти ошибки?
Посты сохраняются, сайт работает нормально.
Раньше такого не наблюдала.
Но все-таки хотелось бы знать, из-за чего такое может быть?
Время от времени она выскакивает большой простыней, привожу часть:
WordPress database error: [MySQL server has gone away] SELECT meta_id FROM wp_postmeta WHERE post_id = '139' AND meta_key = 'seo-description' WordPress database error: [MySQL server has gone away] INSERT INTO wp_postmeta (post_id,meta_key,meta_value) VALUES ('139','seo-description','бла бла бла') WordPress database error: [MySQL server has gone away] SELECT meta_id FROM wp_postmeta WHERE post_id = '139' AND meta_key = 'keywords' WordPress database error: [MySQL server has gone away] INSERT INTO wp_postmeta (post_id,meta_key,meta_value) VALUES ('139','keywords','бла бла бла') WordPress database error: [MySQL server has gone away] SELECT meta_id FROM wp_postmeta WHERE post_id = '139' AND meta_key = 'description' WordPress database error: [MySQL server has gone away] INSERT INTO wp_postmeta (post_id,meta_key,meta_value) VALUES ('139','description','бла бла бла') WordPress database error: [MySQL server has gone away] SELECT `comment_post_ID` as `post_id`, COUNT(comment_ID) as `comment_count`, comment_approved FROM `wp_comments` GROUP BY `comment_post_ID` WordPress database error: [MySQL server has gone away] SELECT `ID` ,`post_modified`, `post_date`, `post_status` FROM `wp_posts` WHERE post_status = 'publish' OR post_status='static' ORDER BY post_modified DESC
ты пользуешься SEO???
может он глючит или через нее хотят ввести SQL инъекцию……. Я сам не встречался с этим. Надо подумать и поискать
Может место на диске закончилось.
Вряд ли инъкция, была б ругань на синтаксис или молча грохнулось всё. Я бы сказал, что это таймауты. Возможно, сервер БД не справляется с нагрузкой или от веб-сервера до сервера БД очень хреновый канал (бывает, бывает, например, если в локалке стоит глюкавый свич). Тогда это серьезный головняк сисадмину.
нет это врядли от канала или мускула……. Тогда бы все не показало бы и полетело бы все к черту. Тут что-то другое.
Не, точно есть такой прикол. Транзакции из очереди выполняются, хотя сервак возвращает таймаут. Базу это не корёжит, т.к. update и insert отрабатывают в конце концов. А вот отдать по select может или ругань, или огрызки.
Вдогонку: хорошо бы посмотреть логи медленных запросов базы. Мой хостер намедни добавил такой пункт в панель управления. Полезнейшая весчь!
Какое SEO?! Открой глаза — это обычные custom fields
———————————————-
Места на хостинге еще дофига.
Таймаут… Хм… Раньше не было, а теперь есть. Посты сохраняются, кстати недолго, через секунд 7-10 выскакивает, и не всегда.
Если кого-то смущает 10 секунд — так у меня полный виз. редактор стоит, тяжелый в общем.
Пойду разузнаю что такое «логи запросов базы» и с чем их едят 🙂
"Раньше не было, а теперь есть." – Всё когда-нибудь бывает впервые. 😉
Есть опция, при включении которой в логи mysql сливается вот такое
Query_time: 29 – это и есть время выполнения запроса. А медленным он считается потому, что в настройках движка базы выставлен предел "нормальности" (переменная long query time), на этом сервере равная 10. Кстати, в данном случае, мне почему-то кажется, что 29 секунд на такую ерунду – это абсолютно ненормально. Значит, сервер тормозит что-то или кто-то, и возможны всякие проблемы с базой.
я уже не знаю что думать……. А ты связалась с саппортом сервака??? может все изза сервера и мускула который забился запросами?!
Молчит пока хостер. Ковырялась—ковырялась, нигде не нашла статистику по логам запросов к базе.
Завтра разбираться уже буду…
Мучай хостера.
————————
8.2.2 Ошибка MySQL server has gone away
Наиболее общая причина для ошибки MySQL server has gone away состоит в том, что у сервера кончилось время ожидания, и он закрыл подключение. По умолчанию сервер закрывает подключение после 8 часов отсутствия активности. Вы можете изменять срок, устанавливая переменную wait_timeout, когда Вы запускаете mysqld
Другая общая причина получения такой ошибки состоит в том, что Вы закрыли соединение, а теперь пробуете выполнить запрос на закрытом подключении.
Вы можете проверять, что MySQL работает, выполняя mysqladmin version и исследуя uptime.
Если Вы имеете скрипт, Вы только должны снова выдать запрос клиенту, чтобы сделать автоматическое переподключение.
Вы обычно можете получать следующие коды ошибки в этом случае:
CR_SERVER_GONE_ERROR Клиент не может послать запрос на сервер.
CR_SERVER_LOST Клиент не получал ошибку при записи на сервер, но и не получил полный ответ (или любой ответ) на запрос.
Вы можете также получать эти ошибки, если Вы посылаете неправильной или слишком большой запрос серверу. Если mysqld получает пакет, который является слишком большим или вне правил, он считает, что что-то пошло неправильно с клиентом и закрывает подключение. Если Вы нуждаетесь в больших запросах (например, если Вы работаете с большими столбцами BLOB), Вы можете увеличить ограничение запроса, запуская mysqld с опцией -O max_allowed_packet=# (по умолчанию 1M). Память дополнительного пространства распределена по требованию, так что mysqld использует большее количество памяти только, когда Вы выдаете большой запрос, или когда mysqld должен возвратить большую строку результатов!
————-
http://www.botik.ru/~rldp/mysql/mysqladm/glava08.htm