|
|
vBulletin 4.x Все для скрипта форума vBulletin 4.x |
|
Опции темы | Поиск в этой теме |
15.07.2014, 15:04 Вверх | #1 | |||
Местный житель
|
При отправке сообщений Database Error
Доброго времени суток!
С относительно недавнего времени при отправке сообщений начала рандомно возникать Database Error, при этом не отдельным экраном, а наверху редактора сообщений. Само сообщение при этом отправляется, т.к. при обновлении страницы браузером, его можно созерцать. На почту приходят такие вот логи: Код:
Ошибка базы данных в vBulletin 4.1.7: Invalid SQL: INSERT INTO postlog (postid, useragent, ip, dateline) VALUES (9156, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0', 1045184657, 1405420294); Ошибка MySQL : Duplicate entry '9156' for key 'PRIMARY' Номер ошибки : 1062 Дата запроса : Tuesday, July 15th 2014 @ 02:31:34 PM Дата ошибки : Tuesday, July 15th 2014 @ 02:31:34 PM Скрипт : http://<мой домен>/newreply.php?do=postreply&t=288 Реферер : http://<мой домен>/showthread.php?t=288&p=8593 IP адрес : <IP отправившего сообщение> Имя пользователя : <ник оттправившего сообщение> Имя класса : vB_Database Версия MySQL : 5.1.50-community Ошибка возникает сугубо рандомно, бывает днями ее нет. А бывает на дню по много раз от разных пользователей. Сам себя классифицирую как продвинутый нуб, так что углубленно MySQL пока не осиливаю. Есть ли по возможности безболезненное решение данной проблемы? ...Заранее спасибо. |
|||
15.07.2014, 15:43 Вверх | #2 | |||
Просто блондинка
|
та ладно)
Duplicate entry - довольно распространённое явление при таких проявлениях особого криминала - нет Майсиквел тормозит с обработкой запроса форум активный? постят много? рекомендации: оптимизировать таблицу postlog (не поможет, но не помешает) обновиться до последней актуальной версии в своей линейке ибо 4.1.7... хм... Не решит проблему с БД, но повысит взломоустойчивость |
|||
15.07.2014, 16:24 Вверх | #3 | |||
Местный житель
|
Добрый день.
Имеете ввиду, MySQL тормозит из-за интернет-соединения или сам по себе из-за сервера? Просто шибко больших нагрузок по серверу не наблюдал. Форум не особо активный летом, а так, в принципе, несколько десятков сообщений в день можно ждать. Пользователей мало, да и форум создавался сугубо для неформального общения знакомых, а также знакомых их знакомых и т.п., так сказать, ненапряжная обстановка. Насчет оптимизаций, провожу их регулярно либо из phpmyadmin, либо из админки форума ("оптимизировать таблицы"), оптимизирую все. Но напротив некоторых стоит пометка либо "Table does not support optimize, doing recreate + ...", либо "Table is already up to date". А еще: Код:
Innodb_buffer_pool_pages_dirty 25 Innodb_buffer_pool_reads 1,776 Handler_read_rnd 24 k Handler_read_rnd_next 648 k Created_tmp_disk_tables 6 Key_reads 1,298 Select_full_join 195 Opened_tables 1,163 По рекомендациям с комьюнити MySQL, увеличил размеры буферов в разумных (рекомендованных) пределах, но значения только увеличились (может это из-за оптимизации через ту же phpmyadmin, не знаю, она ж перелопачивает всю базу, наверное). Это все я к тому, что хоть форум сам работает нормально, но эта рандомная ошибка начинает напрягать. |
|||
Последний раз редактировалось Razielik; 15.07.2014 в 16:27.. |
||||
15.07.2014, 18:03 Вверх | #4 | |||
# About Fоrum NH
|
Добрый день.
Попробуйте обновить форум, например до версии vBulletin 4.2.0 Попробуйте поставить версию PHP 5.3 Оптимизируйте таблицу: postlog (Лью выше писала) Воткните в конец config.php код: Код:
define(DISABLE_HOOKS, 1); Пробуйте. |
|||
15.07.2014, 18:26 Вверх | #5 | |||
Местный житель
|
День добрый.
Насчет обновления - это как минимум "ой-ой-ой!" Т.к. куча шаблонов, файлов движка, да то же оформление и т.п. дорабатывалась еще пару лет назад. А что там дорабатывалось помимо этого, не помню за давностью. Что касается хаков, то у меня их не очень большое количество, и все они работали исправно уже более года, по мере их добавления для нужд форума. Про оптимизацию писал выше, провожу регулярно, раз в неделю. PHP как раз 5.3 установлен. Сам лично грешу на качество интернета и на мелкие повреждения в БД. Вроде ничего не плюется ошибками, но начитавшись по MySQL, понимаю, что тут может быть темный лес. |
|||
15.07.2014, 19:15 Вверх | #7 | |||
Местный житель
|
В личке.
А может ли на редактор сообщения пагубно влиять дотошное кеширование, прописанное в .htaccess? |
|||
Последний раз редактировалось Razielik; 15.07.2014 в 19:19.. |
||||
15.07.2014, 20:34 Вверх | #9 | |||
Просто блондинка
|
что-то сомневаюсь....
опаньки... ИнноДБ... не-на-вижу!!! "оптимизировать" InnoDB можно только копированием, и то это не оптимизация, а фикция а вот в случае повреждения InnoDB - труп... они не чинятся средствами майсиквела и что конкретно по postlog - она в чём, InnoDB или MyISAM? прекращайте бессмысленно, иногда - вредно тогда, возможно, проблема не в том, что два пользователя отправили пост одновременно возможно, проблема в очистке таблицы кроны работают? юзеров хватает, чтобы постоянно отрабатывали все кроны? маловероятно... в любом случае, не видя, что именно там прописано, диагноз тут вряд ли кто поставит понимаю надо смотреть пациента вблизи... |
|||
Последний раз редактировалось Luvilla; 15.07.2014 в 21:18.. |
||||
15.07.2014, 20:42 Вверх | #10 | |||
Местный житель
|
Вы меня пугаете...
Как раз все на InnoDB. =( Есть ли безболезненный способ перейти на MyISAM? Или восстановить postlog. Когда ставился форум, я был не просто нуб, а конкретный нуб. Шел тогдашним рекомендациям. Кстати, нарыл ту же проблему: Нажми для просмотра
В админке есть пункт "Исправление уникальных индексов", но я не знаю, поможет ли он. Файл mysql-schema.php я мог бы восстановить из архива движка форума. Ну а бекап базы у меня каждый день идет. Кстати, postlog пишет, что "OK". Типа ошибок нету. |
|||
Последний раз редактировалось Razielik; 15.07.2014 в 20:49.. |
||||
15.07.2014, 20:50 Вверх | #11 | |||
Просто блондинка
|
там не предлагают.. там отписали, что проблема была в том, что слетел автоинкремент
та ладно) форум-то работает? ну и хорошо) киньте в личку ссылку на форум и полный список хаков, на всякий случай И я по-прежнему считаю, что нужно всерьёз подумать об обновлении |
|||
15.07.2014, 21:08 Вверх | #12 | |||
Местный житель
|
Нашел несколько рекомендаций очистить содержимое postlog, т.к. там логируется информация о юзер-агентах, подключающихся к сайту. Не знаю насколько это правда (об очистке и последующей корректной работе), но список юзер-агентов я там как раз обнаружил.
|
|||
17.07.2014, 01:00 Вверх | #18 | |||
Местный житель
|
В общем, утром еще удалил тот хак. Ошибок вроде не было. Пока я не перезагрузил сервер. Получил пару ошибок, потом несколько раз обновил страницу, перезашел в ту тему, где постил, снова отправил сообщение, ошибок больше не получал. Мистика...
Я тут намекал на неправильное кеширование, так вот. Вот мой кусок конфига из .htaccess: Код:
FileETag MTime Size <IfModule mod_headers.c> # 1 MONTH <FilesMatch "\.(jpg|jpeg|gif|png|swf|css|js)$"> Header set Cache-Control "max-age=2419200, public" </FilesMatch> # 1 DAY <FilesMatch "\.(html|htm)$"> Header set Cache-Control "max-age=86400, private, proxy-revalidate" </FilesMatch> </IfModule> <IfModule mod_expires.c> <FilesMatch "\.(jpg|jpeg|gif|png|swf|css|js)$"> ExpiresActive on ExpiresDefault "access plus 1 month" </FilesMatch> <FilesMatch "\.(html|htm)$"> ExpiresActive on ExpiresDefault "access plus 1 day" </FilesMatch> </IfModule> <Ifmodule mod_deflate.c> SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript </Ifmodule> Тут еще маленькая мелочь. Когда тыкаешь мышой в редактор сообщений, то курсор набора текста может не сразу появиться, но печатать при этом можно (странный глюк). И мне кажется, что эти события как-то взаимосвязаны, ибо если изначально с редактором все нормально, то я не помню момента получения ошибок при этом. Дабы не показаться слишком умным, напишу, что конфиг не мой, но я его самую малость доработал, убрав к примеру кеширование php, которое там совсем не к месту. Если есть конструктивные замечания, то можно мне, ламеру, кинуть правильный конфиг кеширования для булки версии 4? Т.к. в инете много всего, а что правильнее и корректнее, неизвестно. =( |
|||
Последний раз редактировалось Razielik; 17.07.2014 в 01:05.. |
||||
17.07.2014, 11:34 Вверх | #20 | |||
Местный житель
|
Таблица POST не поддается оптимизации phpmyadmin. Выдает: "Table does not support optimize, doing recreate + analyze". Как восстановить ее индексы, если дело таки в ней (в таблице POST)? Что-то в сети какие-то противоречивые мануалы. В основном все "мучают" MyISAM. Возможно дело таки в ней. Как решить проблему с автоинкрементами? Уже весь мозг и гугл замучил. =(
|
|||
17.07.2014, 12:13 Вверх | #21 | |||
Просто блондинка
|
Razielik, у Вас в вопросах такая каша...
оптимизация таблицы нЕ имеет никакого отношения ни к индексам, ни к автоинкрементам InnoDB действительно не отпимизируется InnoDB не поддерживает FULLTEXT индекс, но! - у Вас 4ка, там таблицы поиска отдельные и они в MyISAM (по крайней мере, по дефолту они должны быть MyISAM) AUTO_INCREMENT автоматически нЕ чинится, это только вручную Что там у Вас, ошибки продолжают сыпаться? удаление хака не помогло? я могу посмотреть, если дадите админку и ПМА |
|||
18.07.2014, 17:03 Вверх | #22 | |||
Местный житель
|
Подведу итоги экспериментов:
1) сделал дамп всех таблиц базы 2) создал пустую базу с другим именем и влил туда дамп таблиц 3) позже перевел базы с InnoDB на MyISAM Пока ошибок не наблюдаю (много раз "тьфу" через плечо). Возможно именно вливом дампа в новую базу вправило мозг всем таблицам. Остался лишь неприятный глюк с непоявлением курсора при клике в окне редактора сообщений. По этому вопросу я пока ничего не нашел. =) Дабы по возможности предотвратить глюки БД в будущем, у меня пара вопросиков: 1) Полезна ли оптимизация такого вида mysqlcheck --user=<логин> --password=<пароль> --extended --auto-repair --check --optimize --all-databases и как автоматизировать это действие так, чтобы в момент оптимизации никто не подключался к форуму (то бишь к БД)? 2) Правильно ли срабатывает отключение MySQL в нижеследующем случае mysqladmin -u<логин> -p<пароль> shutdown то есть не повредится ли БД при таком отключении, если в момент отключения к ней шло обращение? P.S.: Огромное человеческое спасибо вам, Luvilla за терпение такого нуба как я =) Но хотелось бы как-нибудь позже проконсультироваться у вас насчет перекодировки с "моего" шведского на нормальный utf8. |
|||
Cказали cпасибо: |
18.07.2014, 17:12 Вверх | #23 | |||
Просто блондинка
|
Оставьте в покое оптимизацию
просто поверьте... форумы живут годами безо всяких принудительных "оптимизаций" и великолепно себя чувствуют Вы прекрасно умеете следовать инструкциям вот неплохой мануал по перекодировке: Руководство по решению проблем с кодировками Только будьте осторожны закроете форум, снова сделаете копию рабочей БД средствами ПМА, потом будете проводить операции с базой главное: чтобы у Вас всегда лежала копия БД, нетронутая перекодировками удалить всегда успеете) |
|||
18.07.2014, 19:36 Вверх | #24 | |||
Местный житель
|
А насчет отключения? Просто у меня почти все автоматизировано, и сервер раз в определенное время перезагружается, делая бэкапы.
P.S.: Теперь меня курсор доконает. Надо тыкнуть раз 10, чтоб он появился. |
|||