ram108 Опубликовано 25 января, 2022 Поделиться Опубликовано 25 января, 2022 Приветствую форумчан! У меня достаточно старый (по времени) и большой (по контенту) форум на последней версии 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, но это проблема поставила меня в тупик, никак не могу ее решить. Может кто подскажет? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 25 января, 2022 Поделиться Опубликовано 25 января, 2022 Странная ошибка какая-то, сообщение об ошибке не от первого запроса, там нет таких полей (user_sairam и т.д.). И первый запрос на моей базе без ошибок отрабатывает. Вообще, если проблема пошла после апгрейда, надо проверять, всё ли сконвертировалось нормально, сравнить структуру таблиц со свежеустановленным пустым форумом. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Respected Опубликовано 26 января, 2022 Поделиться Опубликовано 26 января, 2022 Я так понимаю проблема решилась. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
roonovoorsk Опубликовано 26 января, 2022 Поделиться Опубликовано 26 января, 2022 да действительно проблема с переводом базы, вернул mysql и все норм стало, а что с новой не понятно полный копия той базы было Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
roonovoorsk Опубликовано 26 января, 2022 Поделиться Опубликовано 26 января, 2022 база большая больше 26 мб как ее залить? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Zero108 Опубликовано 26 января, 2022 Поделиться Опубликовано 26 января, 2022 26 МБ - это небольшая база. Базу заливают дампером или непосредственно из файла .sql на сервере по ssh. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
roonovoorsk Опубликовано 26 января, 2022 Поделиться Опубликовано 26 января, 2022 8 минут назад, Zero108 сказал: 26 МБ - это небольшая база. Базу заливают дампером или непосредственно из файла .sql на сервере по ssh. понял сейчас попробую) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
roonovoorsk Опубликовано 26 января, 2022 Поделиться Опубликовано 26 января, 2022 у меня почему не работает Sypex Dumper HTTP ERROR 500 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Zero108 Опубликовано 26 января, 2022 Поделиться Опубликовано 26 января, 2022 (изменено) Я бы рекомендовал вешать дампер на отдельный домен третьего уровня, настраивать ему 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/ - полный серверный путь к файлу дампа). Изменено 26 января, 2022 пользователем Zero108 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
roonovoorsk Опубликовано 26 января, 2022 Поделиться Опубликовано 26 января, 2022 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 присваивает другой имя сервера Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
ram108 Опубликовано 27 января, 2022 Автор Поделиться Опубликовано 27 января, 2022 В 26.01.2022 в 01:00, Desti сказал: user_sairam Это user базы данных сайта. Ошибка действительно странная, искал упоминания на stackoverflow и на форуме разработчиков IPS. Нигде нет никакой информации. На stackoverflow были подобные ошибки, связанные с переполнением максимального значения переменной типа DOUBLE. Но я не понял, какая именно колонка базы данных выдает эту ошибку. И индексы autoincrement тоже не переполнены. Пробовал запрос напрямую в базу отправить - исполнился без ошибок. В 26.01.2022 в 08:32, Respected сказал: Я так понимаю проблема решилась. В общем, проблема вроде как решилась, но это не точно. Через админ панель сбросил поисковый индекс в разделе Поиск и перестроил его заново. Пока ошибка не появлялась. Надеюсь, что все-таки проблема была из-за кривого апгрейда и перестройки индекса. Спасибо всем за советы! Даже моральная поддержка дает уверенности, что все можно решить! Respected 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 27 января, 2022 Поделиться Опубликовано 27 января, 2022 1 час назад, ram108 сказал: Но я не понял, какая именно колонка базы данных выдает эту ошибку. И индексы autoincrement тоже не переполнены. Если ошибка связана с этим запросом, то тут не колонка базы, а вычисление - вся эта фигня POWER с возведение в степень дробного числа. В результате может получится число с огромной дробной частью, которое великовато для DOUBLE в коде. Но это только предположение, колонок DOUBLE в этой таблице нет. ram108 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.