Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Не показывается размер БД в админке после обновления MySQL

Проблемы с установкой или работой phpBB 3.2.x? Получите помощь здесь!
Внимание: с 7 ноября 2020 года phpBB Group завершено дальнейшее развитие phpBB версии 3.2, а с 1 августа 2024 года будет прекращена её поддержка.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Yukh
phpBB 1.4.4
Сообщения: 153
Стаж: 11 лет 9 месяцев
Откуда: Москва
Благодарил (а): 15 раз
Поблагодарили: 12 раз
Контактная информация:

Не показывается размер БД в админке после обновления MySQL

Сообщение Yukh »

Описание проблемы: После обновления mysql до версии 8.0 перестал отображаться в админке размер БД
Произведенные изменения, после которых начались неполадки: обновление mysql c 7.x до версии 8.0.13
Версия phpBB: 3.2.5
Используемые стили: Prosilver
Используемые моды/расширения: Addon for Thanks for posts, Ajax Chat, Attached Image rotator, Avatar Upload Resize - Lite, Board Rules, CloudFlare IP, Disallow External Images, Extension Highslide, External Links Open in New Window, maps, phpBB Gallery, phpBB Media Embed PlugIn, Post Links, Profile side switcher, QuickReply Reloaded, Site logo (3.2), Stop spamer register, Thanks for posts, Topic Author, Upload Extensions, Web Push Notifications
Версия PHP:: 7.2.14
Используемая СУБД и её версия: MySQL 8.0.13
Ссылка на конференцию: https://alkobus.com
Есть ли у вас тестовый аккаунт: нет
Использовался ли поиск для решения проблемы: нет
Если да, то какие запросы вы использовали:


Как временное решение, исправил код в includes/function_admin.php:

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

Закомментил:

/*
                                $version = $row['mysql_version'];

                                if (preg_match('#(3\.23|[45]\.|10\.[0-9]\.[0-9]{1,2}-+Maria)#', $version))
                                {
                                        $db_name = (preg_match('#^(?:3\.23\.(?:[6-9]|[1-9]{2}))|[45]\.|10\.[0-9]\.[0-9]{1,2}-+Maria#', $version)) ? "`{$db->get_
db_name()}`" : $db->get_db_name();

                                        $sql = 'SHOW TABLE STATUS
                                                FROM ' . $db_name;
                                        $result = $db->sql_query($sql, 7200);

                                        $database_size = 0;
                                        while ($row = $db->sql_fetchrow($result))
                                        {
                                                if ((isset($row['Type']) && $row['Type'] != 'MRG_MyISAM') || (isset($row['Engine']) && ($row['Engine'] == 'MyISA
M' || $row['Engine'] == 'InnoDB' || $row['Engine'] == 'Aria')))
                                                {
                                                        if ($table_prefix != '')
                                                        {
                                                                if (strpos($row['Name'], $table_prefix) !== false)
                                                                {
                                                                        $database_size += $row['Data_length'] + $row['Index_length'];
                                                                }
                                                        }
                                                        else
                                                        {
                                                                $database_size += $row['Data_length'] + $row['Index_length'];
                                                        }
                                                }
                                        }
                                        $db->sql_freeresult($result);

                                }
*/

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

Добавил после:

                                $db_name = (preg_match('#^(?:3\.23\.(?:[6-9]|[1-9]{2}))|[45]\.|10\.[0-9]\.[0-9]{1,2}-+Maria#', $version)) ? "`{$db->get_db_name()}`" : $db->get_db_name();
                                $sql = 'SELECT ROUND(SUM(data_length + index_length), 2) as "Size" FROM information_schema.TABLES WHERE table_schema="' . $db_name .'"';
                                $result = $db->sql_query($sql, 7200);
                                $database_size = 0;
                                while ($row = $db->sql_fetchrow($result))
                                {
                                        $database_size += $row['Size'];
                                }
                                $db->sql_freeresult($result);
Может, да и скорее всего, решение кривое, но на текущий момент цель достигнута.
Может есть какие другие варианты решения вопроса?
Юрий.
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 9 лет 11 месяцев
Благодарил (а): 41 раз
Поблагодарили: 932 раза

Re: Не показывается размер БД в админке после обновления MySQL

Сообщение LavIgor »

Yukh писал(а): 23.01.2019 17:25mysql c 7.x
Такой версии нет, до этого была 5.7.
Судя по регулярке, код не рассчитан на более свежие версии MySQL после 5.x.
Пробовали добавить туда восьмёрку (заменить оба вхождения [45]\. на [458]\.)?
Аватара пользователя
Yukh
phpBB 1.4.4
Сообщения: 153
Стаж: 11 лет 9 месяцев
Откуда: Москва
Благодарил (а): 15 раз
Поблагодарили: 12 раз
Контактная информация:

Re: Не показывается размер БД в админке после обновления MySQL

Сообщение Yukh »

LavIgor, скорее всего да, могу ошибаться.
LavIgor писал(а): 23.01.2019 20:22 Пробовали добавить туда восьмёрку (заменить оба вхождения [45]\. на [458]\.)?
Скажу честно - я не силён в регулярках. Не могли бы Вы предоставить строку целиком?
Юрий.
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 9 лет 11 месяцев
Благодарил (а): 41 раз
Поблагодарили: 932 раза

Re: Не показывается размер БД в админке после обновления MySQL

Сообщение LavIgor »

Yukh, я предоставил подстроки для замены.
Но если хотите целиком, то из Вашего кода выше - найти

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

if (preg_match('#(3\.23|[45]\.|10\.[0-9]\.[0-9]{1,2}-+Maria)#', $version))
и заменить на

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

if (preg_match('#(3\.23|[458]\.|10\.[0-9]\.[0-9]{1,2}-+Maria)#', $version))
Найти

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

$db_name = (preg_match('#^(?:3\.23\.(?:[6-9]|[1-9]{2}))|[45]\.|10\.[0-9]\.[0-9]{1,2}-+Maria#', $version)) ? "`{$db->get_db_name()}`" : $db->get_db_name();
и заменить на

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

$db_name = (preg_match('#^(?:3\.23\.(?:[6-9]|[1-9]{2}))|[458]\.|10\.[0-9]\.[0-9]{1,2}-+Maria#', $version)) ? "`{$db->get_db_name()}`" : $db->get_db_name();
Аватара пользователя
Yukh
phpBB 1.4.4
Сообщения: 153
Стаж: 11 лет 9 месяцев
Откуда: Москва
Благодарил (а): 15 раз
Поблагодарили: 12 раз
Контактная информация:

Re: Не показывается размер БД в админке после обновления MySQL

Сообщение Yukh »

LavIgor, спасибо за наводку. Завтра попробую поменять регулярку с оригинальным кодом.
Тот код, который использую я вместо того, что закомментировал, работает и без этого.
Юрий.
Аватара пользователя
Yukh
phpBB 1.4.4
Сообщения: 153
Стаж: 11 лет 9 месяцев
Откуда: Москва
Благодарил (а): 15 раз
Поблагодарили: 12 раз
Контактная информация:

Re: Не показывается размер БД в админке после обновления MySQL

Сообщение Yukh »

Добрый день!
Подтверждаю, этих двух замен в оригинальном коде оказалось достаточно чтобы все заработало.
Последний раз редактировалось Sheer 24.01.2019 15:53, всего редактировалось 1 раз.
Причина: Удален оверквотинг
Юрий.
Ответить

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