MariaDB->MySQL: ERROR. syntax to use near 'groups g ON (m.group_id = g.group_id) WHERE m.display_on_index = 1'

Проблемы с установкой или работой phpBB 3.3.x? Получите помощь здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Сева
phpBB 1.4.1
Сообщения: 49
Стаж: 5 месяцев
Благодарил (а): 1 раз
Поблагодарили: 1 раз

MariaDB->MySQL: ERROR. syntax to use near 'groups g ON (m.group_id = g.group_id) WHERE m.display_on_index = 1'

Сообщение Сева »

У меня phpBB 3.3.12

Мигрирую с одного сервера на другой. На обоих Rocky Linux 8 and 9.

Database.
Старая: MariaDB 10.3.35-MariaDB
Новая: MySQL 8.0.36 (mysql-8.0.36-1.el9_3.src.rpm)

Бакапил вот так:
mysqldump -R --triggers -h localhost -uroot -p*** --databases OurDB --result-file=OurDB.sql


На обоих серверах NGINX.
Папку с файлами форума TARом собрал, перекопировал и развернул абсолютно в идеинтичную структуру папок.

Логины пересозданы с теми же паролями, проверены, права розданы на БД полные.

И тем не менее, на новом сервере при попытке открыть любую страницу получаю
SQL ERROR [ mysqli ]

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'groups g ON (m.group_id = g.group_id) WHERE m.display_on_index = 1' at line 1 [1064]
Грепом я нашёл, что "m.display_on_index = 1" встречается лишь в includes/functions_display.php вот в этом куске

Код: Выделить всё

        $sql_array = array(
                'SELECT'        => 'm.*, u.user_colour, g.group_colour, g.group_type',

                'FROM'          => array(
                        MODERATOR_CACHE_TABLE   => 'm',
                ),

                'LEFT_JOIN'     => array(
                        array(
                                'FROM'  => array(USERS_TABLE => 'u'),
                                'ON'    => 'm.user_id = u.user_id',
                        ),
                        array(
                                'FROM'  => array(GROUPS_TABLE => 'g'),
                                'ON'    => 'm.group_id = g.group_id',
                        ),
                ),

                'WHERE'         => 'm.display_on_index = 1',
        );

        /** @var \phpbb\group\helper $group_helper */
        $group_helper = $phpbb_container->get('group_helper');

        // We query every forum here because for caching we should not have any parameter.
        $sql = $db->sql_build_query('SELECT', $sql_array);
        $result = $db->sql_query($sql, 3600);
Какие идеи, что посоветуете, коллеги?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16948
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1701 раз

Re: MariaDB->MySQL: ERROR. syntax to use near 'groups g ON (m.group_id = g.group_id) WHERE m.display_on_index = 1'

Сообщение rxu »

Префикс таблиц БД на новом сервере задан?

P.S. Вижу, на оф. сайте уже разобрались с вопросом.
Изображение
Аватара пользователя
Сева
phpBB 1.4.1
Сообщения: 49
Стаж: 5 месяцев
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: MariaDB->MySQL: ERROR. syntax to use near 'groups g ON (m.group_id = g.group_id) WHERE m.display_on_index = 1'

Сообщение Сева »

rxu писал(а): 02.01.2025 7:05 Префикс таблиц БД на новом сервере задан?

P.S. Вижу, на оф. сайте уже разобрались с вопросом.
Да, помогли коллеги, спасибо конечно.

Надо кстати попросить их переименовать мой ник там тоже на Сева (или Литиницей Seva).

С поведением КЭШа пока не всё понятно. Почему вопреки установке использовать memcached, всё равно заполняется и, что самое неприятное, ИСПОЛЬЗУЕТСЯ, кэш из cache/production ?

Форум поднялся, но ни один из пользовательских паролей не работает.
После восстановления БД из 10.3.35-MariaDB на MySQL 8.4

Может вы подскажете, как их пофиксать?
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5429
Стаж: 20 лет 3 месяца
Откуда: Питер
Благодарил (а): 177 раз
Поблагодарили: 749 раз

Re: MariaDB->MySQL: ERROR. syntax to use near 'groups g ON (m.group_id = g.group_id) WHERE m.display_on_index = 1'

Сообщение Siava »

Сева писал(а): 02.01.2025 13:36 но ни один из пользовательских паролей не работает.
Включена ли поддержка Argon2 в php?

Отправлено спустя 1 минуту 27 секунд:
Сева писал(а): 02.01.2025 13:36 ИСПОЛЬЗУЕТСЯ, кэш из cache/production
Откуда twig подгружается как минимум, он в memcached не умеет почему-то.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
Сева
phpBB 1.4.1
Сообщения: 49
Стаж: 5 месяцев
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: MariaDB->MySQL: ERROR. syntax to use near 'groups g ON (m.group_id = g.group_id) WHERE m.display_on_index = 1'

Сообщение Сева »

Siava писал(а): 02.01.2025 13:41 Включена ли поддержка Argon2 в php?
Её надо как-то по новой конфигурить на новом сервере?

Во время миграции я просто tar cvf папку форума на старом, и tar xvf её на новом сервере
Старый (текущий) форум версии 3.3.12


Вот Патрик пишет, что поддержка Argon2 началась с версий 3.3.*
https://www.phpbb.com/community/viewtop ... #p15079261

Или при миграции надо ещё что-то конфигурить?

На новом сервере argon2 libargon2 установлены

В папке phpbb/passwords/driver так же обнаружены argon2i.php и argon2id.php
Их файлы /usr/bin/argon2 и /usr/lib64/libargon2.so.1 - в путях PATH and LD_LIBRARY_PATH
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16948
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1701 раз

Re: MariaDB->MySQL: ERROR. syntax to use near 'groups g ON (m.group_id = g.group_id) WHERE m.display_on_index = 1'

Сообщение rxu »

Сева писал(а): 02.01.2025 13:55 надо ещё что-то конфигурить
Надо, чтобы PHP был собран с поддержкой argon2 / имел включенным соответствующий модуль.
Изображение
Аватара пользователя
Сева
phpBB 1.4.1
Сообщения: 49
Стаж: 5 месяцев
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: MariaDB->MySQL: ERROR. syntax to use near 'groups g ON (m.group_id = g.group_id) WHERE m.display_on_index = 1'

Сообщение Сева »

rxu писал(а): 02.01.2025 15:24 Надо, чтобы PHP был собран с поддержкой argon2 / имел включенным соответствующий модуль
Так откуда ж мне знать, как они его там собирали то. Я ж его со стандартного репа yum install php

Кстати, народ вот тут заявляет, что разные версии php могут сыграть свою роль в этом
https://www.phpbb.com/community/viewtopic.php?t=2651425
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16948
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1701 раз

Re: MariaDB->MySQL: ERROR. syntax to use near 'groups g ON (m.group_id = g.group_id) WHERE m.display_on_index = 1'

Сообщение rxu »

Сева писал(а): 02.01.2025 16:44 разные версии php могут сыграть свою роль в этом
Это было при переходе с phpBB 3.2 на 3.3, когда предыдущая версия PHP могла быть ниже, чем 7.2. начиная с 7.2 библиотека libargon2 встроена в ядро PHP, phpBB 3.3 тут не причем, у него минимальное требование PHP - 7.2.
Если в вашем RHEL / CentOS библиотека libargon2 недоступна, попробуйте включить в PHP расширение sodium, может помочь.
Изображение
Аватара пользователя
Сева
phpBB 1.4.1
Сообщения: 49
Стаж: 5 месяцев
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: MariaDB->MySQL: ERROR. syntax to use near 'groups g ON (m.group_id = g.group_id) WHERE m.display_on_index = 1'

Сообщение Сева »

Я мигрировал с Rocky 8 на Rocky 9

Каким то чудом на РОки 8 стоял PHP 8.1.29

А на Роки 9м стоит PHP 8.0.30 (из репа appstream). :?:

На обоих серверах команда php -m среди прочих выдаёт и sodium
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16948
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1701 раз

Re: MariaDB->MySQL: ERROR. syntax to use near 'groups g ON (m.group_id = g.group_id) WHERE m.display_on_index = 1'

Сообщение rxu »

Сева писал(а): 02.01.2025 17:38 На обоих серверах команда php -m среди прочих выдаёт и sodium
Это хорошо. Остается через php -i посмореть, включен ли он, и если нет, то включить его, через php.ini или тем способом, которым это делается в вашей ОС, и перезагрузить вебсервер.

image.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Изображение
Аватара пользователя
Сева
phpBB 1.4.1
Сообщения: 49
Стаж: 5 месяцев
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: MariaDB->MySQL: ERROR. syntax to use near 'groups g ON (m.group_id = g.group_id) WHERE m.display_on_index = 1'

Сообщение Сева »

На обоих серверах вот такой аутпут:

Код: Выделить всё

php -i|egrep "(argon|sodium)"
/etc/php.d/20-sodium.ini,
sodium
sodium support => enabled
libsodium headers version => 1.0.18
libsodium library version => 1.0.18
Отправлено спустя 1 час 23 минуты 6 секунд:
А команды php -i|egrep -i argon и php -m|egrep -i argon на обоих серверах не возвращают ничего.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16948
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1701 раз

Re: MariaDB->MySQL: ERROR. syntax to use near 'groups g ON (m.group_id = g.group_id) WHERE m.display_on_index = 1'

Сообщение rxu »

Попробуйте установить libargon2 в систему. Как пример https://rhel.pkgs.org/9/epel-x86_64/libargon2-20171227-7.el9.x86_64.rpm.html.
Изображение
Аватара пользователя
Сева
phpBB 1.4.1
Сообщения: 49
Стаж: 5 месяцев
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: MariaDB->MySQL: ERROR. syntax to use near 'groups g ON (m.group_id = g.group_id) WHERE m.display_on_index = 1'

Сообщение Сева »

rxu писал(а): 03.01.2025 6:46 опробуйте установить libargon2 в систему.
Спасибо.
Пардон, я не сказал, что уже ж поставил.

Код: Выделить всё

yum list installed|grep argon
argon2.x86_64                         20171227-7.el9                  @epel
libargon2.x86_64                      20171227-7.el9                  @epel
Увы, не помогло.
Чувствую, что какую то мелочь я упускаю во всём этом )
Какую, пока не понятно.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16948
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1701 раз

Re: MariaDB->MySQL: ERROR. syntax to use near 'groups g ON (m.group_id = g.group_id) WHERE m.display_on_index = 1'

Сообщение rxu »

Теперь, если перезапустить вебсервер, проблема остается?
Изображение
Аватара пользователя
Сева
phpBB 1.4.1
Сообщения: 49
Стаж: 5 месяцев
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: MariaDB->MySQL: ERROR. syntax to use near 'groups g ON (m.group_id = g.group_id) WHERE m.display_on_index = 1'

Сообщение Сева »

Да, проблема никуда не делась. Этот Аргон, он и рантше был на новом установлен.

Он кстати там не нужен. У PHP свои библиотеки для него есть. Ну и если PHP с поддержкой аргона собран, то те библиотеки его и вызывают.
На нынешнем (старом то есть) сервере аргон не установлен, но всё работает, все пароли пишутся и читаются.

На новом непонятно, что ему там не хватает?
И PHP собран с поддержкой содиума, и библиотеки все стоят, и sodium ровно такой же.

Вернуться в «Поддержка phpBB 3.3.x»