Перейти к содержанию

Ошибка при попытки использовать поиск на форуме: DOUBLE value is out of range


Рекомендуемые сообщения

Приветствую форумчан!

У меня достаточно старый (по времени) и большой (по контенту) форум на последней версии IPS.

С недавних пор после очередного обновления при попытке искать на форуме выдается ошибка IPS\Db\Exception: DOUBLE value is out of range. Код ошибки: EX1690. Полный код ошибке в спойлере.
 

Спойлер

SELECT main.*, ((MATCH(index_title) AGAINST ('Поиск' IN BOOLEAN MODE)*5)+(MATCH(index_content,index_title) AGAINST ('Поиск' IN BOOLEAN MODE)))/POWER(( ( UNIX_TIMESTAMP( NOW() ) - ( CASE WHEN index_date_updated <= UNIX_TIMESTAMP( NOW() ) THEN index_date_updated ELSE 0 END )) / 3600 ) + 2,1.5) AS calcscore FROM `core_search_index` AS `main` WHERE ( ( index_class IN('IPS\\core\\Statuses\\Status','IPS\\core\\Statuses\\Reply') ) OR index_class='IPS\forums\Topic\Post' OR ( index_class IN('IPS\\calendar\\Event','IPS\\calendar\\Event\\Comment','IPS\\calendar\\Event\\Review') ) OR ( index_class IN('IPS\\gallery\\Image','IPS\\gallery\\Image\\Comment','IPS\\gallery\\Image\\Review') ) OR ( index_class IN('IPS\\gallery\\Album\\Item','IPS\\gallery\\Album\\Comment','IPS\\gallery\\Album\\Review') ) OR index_class='IPS\cms\Pages\PageItem' ) AND MATCH(index_content,index_title) AGAINST ('Поиск' IN BOOLEAN MODE) AND ( index_permissions = '*' OR ( FIND_IN_SET(4,index_permissions) OR FIND_IN_SET('m1',index_permissions) OR FIND_IN_SET('cm',index_permissions) ) ) ORDER BY calcscore DESC LIMIT 0,25


IPS\Db\Exception: DOUBLE value is out of range in '(match `user_sairam`.`main`.`index_title` against ('Поиск' in boolean mode)) * 5 + (match `user_sairam`.`main`.`index_content`,`user_sairam`.`main`.`index_title` against ('Поиск' in boolean mode))' (1690)


#0 /system/Db/Select.php(446): IPS\Db\_Select->runQuery()#1 [internal function]: IPS\Db\_Select->rewind()
#2 /system/Content/Search/Mysql/Query.php(1302): iterator_to_array()
#3 /applications/core/modules/front/search/search.php(728): IPS\Content\Search\Mysql\_Query->search()
#4 /applications/core/modules/front/search/search.php(109): IPS\core\modules\front\search\_search->_results()
#5 /system/Dispatcher/Controller.php(101): IPS\core\modules\front\search\_search->manage()
#6 /system/Dispatcher/Dispatcher.php(153): IPS\Dispatcher\_Controller->execute()
#7 /index.php(13): IPS\_Dispatcher->run()
#8 {main}

Я сам программист и давно работаю с форумами IPS, но это проблема поставила меня в тупик, никак не могу ее решить.

Может кто подскажет? 

Ссылка на комментарий
Поделиться на другие сайты

Странная ошибка какая-то, сообщение об ошибке не от первого запроса, там нет таких полей (user_sairam и т.д.). И первый запрос на моей базе без ошибок отрабатывает.

Вообще, если проблема пошла после апгрейда, надо проверять, всё ли сконвертировалось нормально, сравнить структуру таблиц со свежеустановленным пустым форумом. 

 

Ссылка на комментарий
Поделиться на другие сайты

Я так понимаю проблема решилась.

Ссылка на комментарий
Поделиться на другие сайты

да действительно проблема с переводом базы, вернул mysql и все норм стало, а что с новой не понятно полный копия той базы было

Ссылка на комментарий
Поделиться на другие сайты

база большая больше 26 мб как ее залить? 

Ссылка на комментарий
Поделиться на другие сайты

26 МБ - это небольшая база. Базу заливают дампером или непосредственно из файла .sql на сервере по ssh.

Ссылка на комментарий
Поделиться на другие сайты

8 минут назад, Zero108 сказал:

26 МБ - это небольшая база. Базу заливают дампером или непосредственно из файла .sql на сервере по ssh.

понял сейчас попробую)

Ссылка на комментарий
Поделиться на другие сайты

у меня почему не работает Sypex Dumper HTTP ERROR 500 

Ссылка на комментарий
Поделиться на другие сайты

Я бы рекомендовал вешать дампер на отдельный домен третьего уровня, настраивать ему SSL сертификат. Ошибка 500 говорит о неправильных правах CHMOD, неверном пользователе файлов (например, если заливал файлы дампера по рутом, а пользователь файлов сайта должен быть другой), неправильной версии пхп (попробуй на пхп 7.4). Либо зайди по ssh в sql сервер и загрузи дамп напрямую в базу данных. Также в панеле управления сервером ISPManager (или любой другой) могут быть опции загрузки дампа в базу данных.

========================Залить дамп по ssh===================

mysql ИМЯ_БАЗЫ -uИМЯ_ПОЛЬЗОВАТЕЛЯ -pПАРОЛЬ < dump.sql

или

mysql -uИМЯ_ПОЛЬЗОВАТЕЛЯ -pПАРОЛЬ
и далее в окне на приглашение mysql>
use ИМЯБАЗЫДАННЫХ;
\. /var/lib/phpMyAdmin/upload/dump.sql

(где /var/lib/phpMyAdmin/upload/ - полный серверный путь к файлу дампа).

 

Изменено пользователем Zero108
Ссылка на комментарий
Поделиться на другие сайты

1 час назад, Zero108 сказал:

Я бы рекомендовал вешать дампер на отдельный домен третьего уровня, настраивать ему SSL сертификат. Ошибка 500 говорит о неправильных правах CHMOD, неверном пользователе файлов (например, если заливал файлы дампера по рутом, а пользователь файлов сайта должен быть другой), неправильной версии пхп (попробуй на пхп 7.4). Либо зайди по ssh в sql сервер и загрузи дамп напрямую в базу данных. Также в панеле управления сервером ISPManager (или любой другой) могут быть опции загрузки дампа в базу данных.

========================Залить дамп по ssh===================

mysql ИМЯ_БАЗЫ -uИМЯ_ПОЛЬЗОВАТЕЛЯ -pПАРОЛЬ < dump.sql

или

mysql -uИМЯ_ПОЛЬЗОВАТЕЛЯ -pПАРОЛЬ
и далее в окне на приглашение mysql>
use ИМЯБАЗЫДАННЫХ;
\. /var/lib/phpMyAdmin/upload/dump.sql

(где /var/lib/phpMyAdmin/upload/ - полный серверный путь к файлу дампа).

 

выдает ошибку 'имя база'@'localhost' у меня не localhost, mariadb присваивает другой имя сервера

Ссылка на комментарий
Поделиться на другие сайты

В 26.01.2022 в 01:00, Desti сказал:

user_sairam

Это user базы данных сайта. Ошибка действительно странная, искал упоминания на stackoverflow и на форуме разработчиков IPS. Нигде нет никакой информации. На stackoverflow были подобные ошибки, связанные с переполнением максимального значения переменной типа DOUBLE. Но я не понял, какая именно колонка базы данных выдает эту ошибку. И индексы autoincrement тоже не переполнены. Пробовал запрос напрямую в базу отправить - исполнился без ошибок.

В 26.01.2022 в 08:32, Respected сказал:

Я так понимаю проблема решилась.

В общем, проблема вроде как решилась, но это не точно. Через админ панель сбросил поисковый индекс в разделе Поиск и перестроил его заново. Пока ошибка не появлялась. Надеюсь, что все-таки проблема была из-за кривого апгрейда и перестройки индекса.

Спасибо всем за советы! Даже моральная поддержка дает уверенности, что все можно решить!

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, ram108 сказал:

Но я не понял, какая именно колонка базы данных выдает эту ошибку. И индексы autoincrement тоже не переполнены.

Если ошибка связана с этим запросом, то тут не колонка базы, а вычисление - вся эта фигня POWER с возведение в степень дробного числа. В результате может получится число с огромной дробной частью, которое великовато для DOUBLE в коде. Но это только предположение, колонок DOUBLE  в этой таблице нет.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...