grant24 Posted October 24, 2020 Share Posted October 24, 2020 Есть пожелание от установщика: Цитата У вас есть одна или несколько таблиц InnoDB, которые используют строковый формат Compact. Это может ограничить объем данных, которые могут храниться в таблице. Мы рекомендуем изменить его на «Динамический». Если вы не знаете, как это сделать, обратитесь за помощью к своему хостинг-провайдеру или системному администратору. Менять через heidisql по одной долго а запроса не знаю. Есть методы? Quote Link to comment Share on other sites More sharing options...
Desti Posted October 24, 2020 Share Posted October 24, 2020 (edited) Запрос сформирует набор запросов для всех таблиц с признаком Compact SELECT CONCAT('ALTER TABLE ', SUBSTRING_INDEX(NAME,'/',-1), ' ROW_FORMAT=DYNAMIC;') FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE ROW_FORMAT='Compact'; У вас получится список типа такого, который можно скопировать, отредактировать, убрать лишнее и запустить пакетом. ALTER TABLE ibf_members ROW_FORMAT=DYNAMIC; ALTER TABLE ibf_sessions ROW_FORMAT=DYNAMIC; ALTER TABLE ibf_forsex ROW_FORMAT=DYNAMIC; Предварительно надо проверить наличие этих глобальных настроек (в файле конфигурации mysql) и добавить их, если отсутствуют. innodb_file_format=Barracuda; innodb_file_per_table=1; innodb_large_prefix=1; и рестартануть mysql сервер Никакой ответственности за результат я не несу, тренируйтесь на бекапе/тестовых таблицах. Если для вас это темный лес, то Цитата обратитесь за помощью к своему хостинг-провайдеру или системному администратору. Edited October 24, 2020 by Desti nfisher and Respected 2 Quote Link to comment Share on other sites More sharing options...
HooLIGUN Posted November 6, 2020 Share Posted November 6, 2020 Desti , тоже с этим столкнулся, ваш метод выводит совсем не то, что нужно Переменные выставил У меня почему то все таблицы в Compact Quote Link to comment Share on other sites More sharing options...
Respected Posted November 6, 2020 Share Posted November 6, 2020 Если форум не мега большой, можно не переводить формат. Quote Link to comment Share on other sites More sharing options...
Desti Posted November 6, 2020 Share Posted November 6, 2020 1 час назад, HooLIGUN сказал: У меня почему то все таблицы в Compact Судя по пустому результату у вас нет таблиц Compact. У меня одна табличка в компакте, старая какая-то, всё видно. Quote Link to comment Share on other sites More sharing options...
HooLIGUN Posted November 6, 2020 Share Posted November 6, 2020 Desti Все таблицы в Compact (innoDB), и движок бы просто так не ругался. Quote Link to comment Share on other sites More sharing options...
Desti Posted November 6, 2020 Share Posted November 6, 2020 Т.е. у вас в такой таблице везде в ROW_FORMAT стоит Compact, а запрос ничего не выдает? Quote Link to comment Share on other sites More sharing options...
HooLIGUN Posted November 6, 2020 Share Posted November 6, 2020 Desti Да, сейчас дойду да ПК, покажу скрин Quote Link to comment Share on other sites More sharing options...
Desti Posted November 6, 2020 Share Posted November 6, 2020 Ну так же не бывает Там есть еще одна таблица, `INNODB_SYS_TABLESPACES` - в ней тоже формат обозначен, правда в другом виде, 'Compact or Redundant'. Quote Link to comment Share on other sites More sharing options...
macar Posted January 9, 2021 Share Posted January 9, 2021 Почти все таблицы в Compact, на запрос у меня ошибка: Цитата SELECT CONCAT('ALTER TABLE ', SUBSTRING_INDEX(NAME,'/',-1), ' ROW_FORMAT=DYNAMIC;') FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE ROW_FORMAT='Compact'; ---- Цитата Ошибка SQL запрос: https://macauto.ru/ut/mymac/themes/dot.gif SELECT CONCAT('ALTER TABLE ', SUBSTRING_INDEX(NAME,'/',-1), ' ROW_FORMAT=DYNAMIC;') FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE ROW_FORMAT='Compact' LIMIT 0, 25 Ответ MySQL: https://macauto.ru/ut/mymac/themes/dot.gif #1054 - Неизвестный столбец 'ROW_FORMAT' в 'where clause' Quote Link to comment Share on other sites More sharing options...
Desti Posted January 9, 2021 Share Posted January 9, 2021 сделайте SHOW COLUMNS FROM `information_schema`.`INNODB_SYS_TABLES`; и покажите результат Quote Link to comment Share on other sites More sharing options...
macar Posted January 9, 2021 Share Posted January 9, 2021 Quote Link to comment Share on other sites More sharing options...
Desti Posted January 9, 2021 Share Posted January 9, 2021 А что это за база и какая версия? Quote Link to comment Share on other sites More sharing options...
Desti Posted January 9, 2021 Share Posted January 9, 2021 А тут? SHOW COLUMNS FROM `information_schema`.`TABLES` where TABLE_SCHEMA='имя вашей базы'; Если есть колонка ROW_FORMAT, то сделайте так SELECT CONCAT('ALTER TABLE ', SUBSTRING_INDEX(TABLE_NAME,'/',-1), ' ROW_FORMAT=DYNAMIC;') FROM INFORMATION_SCHEMA.TABLES WHERE ROW_FORMAT='Compact' and TABLE_SCHEMA='имя вашей базы'; extrim 1 Quote Link to comment Share on other sites More sharing options...
macar Posted January 10, 2021 Share Posted January 10, 2021 5.5.68-MariaDB . При выполнении запроса: SHOW COLUMNS FROM `information_schema`.`TABLES` where TABLE_SCHEMA='forum'; Ошибка SQL запрос: SHOW COLUMNS FROM `information_schema`.`TABLES` where TABLE_SCHEMA='forum' Ответ MySQL: https://macauto.ru/ut/mymac/themes/dot.gif #1054 - Неизвестный столбец 'TABLE_SCHEMA' в 'where clause' Пробовал из самой базы делать и из списка баз, результат один. Quote Link to comment Share on other sites More sharing options...
macar Posted January 10, 2021 Share Posted January 10, 2021 9 часов назад, Desti сказал: SELECT CONCAT('ALTER TABLE ', SUBSTRING_INDEX(TABLE_NAME,'/',-1), ' ROW_FORMAT=DYNAMIC;') FROM INFORMATION_SCHEMA.TABLES WHERE ROW_FORMAT='Compact' and TABLE_SCHEMA='имя вашей базы'; Этот запрос прошел, вывел запрос для всех кроме трех, те что с FULLINDEX и в MyISAM. По Quote Link to comment Share on other sites More sharing options...
Desti Posted January 10, 2021 Share Posted January 10, 2021 2 часа назад, macar сказал: SHOW COLUMNS FROM `information_schema`.`TABLES` where TABLE_SCHEMA='forum'; На машкеДБ это почему-то не работает. У меня percona. Quote Link to comment Share on other sites More sharing options...
macar Posted January 10, 2021 Share Posted January 10, 2021 Попробовал конвертировать одну таблицу, вот что получилось, так и должно быть? Статистика строки Формат Compact Параметры row_format=DYNAMIC Сравнение utf8_unicode_ci Следующий автоматический индекс 107 335 Quote Link to comment Share on other sites More sharing options...
Desti Posted January 10, 2021 Share Posted January 10, 2021 Я не знаю, что вы делаете. Вот как это выглядит у меня: Исходное состояние, таблица ibf_banner в формате Compact Проверяем запросом, меняем, снова проверяем. Снова смотрим в сводную таблицу Quote Link to comment Share on other sites More sharing options...
macar Posted January 10, 2021 Share Posted January 10, 2021 Да ничего другого что тут описано я не делаю. Это мне phpmyadmin так показывает, сделал экспорт структуры таблицы которую конвертировал, вроде нормально. CREATE TABLE `ibf_autowelcome_members` ( `welcome_member_id` bigint(20) UNSIGNED NOT NULL COMMENT 'ID Number', `welcome_sent` tinyint(4) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC; Quote Link to comment Share on other sites More sharing options...
macar Posted January 10, 2021 Share Posted January 10, 2021 (edited) Кстати , MarioDB требует формат файлов не Барракуда а Antelope Warning: #1478 InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_format > Antelope. Warning: #1478 InnoDB: assuming ROW_FORMAT=COMPACT. Edited January 10, 2021 by macar Quote Link to comment Share on other sites More sharing options...
Desti Posted January 10, 2021 Share Posted January 10, 2021 Обновите машку до актуальной версии, это вроде бы баг. Quote Link to comment Share on other sites More sharing options...
Axxxmatov Posted March 28, 2023 Share Posted March 28, 2023 Здравствуйте, подскажите есть уже готовое решение с этой проблемой, у меня такая же проблема сейчас, спасибо Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.