Технические вопросы

Антилопа против Барракуды

 
Изображение пользователя Алексей Грабко
Антилопа против Барракуды
 

При обновлении версии Moodle и при просмотре версии ПО (Администрирование-Сервер-Среда) в самом низу есть такая картина:

Информация unsupported_db_table_row_format

Отчет  непрохождение данного теста указывает на возможную проблему Your database has tables using Antelope as the file format. You are recommended to convert the tables to the Barracuda file format. See the documentationAdministration via command line for details of a tool for converting InnoDB tables to Barracuda.

Плагин

Статус Проверьте


Насколько я понял, таблицы баз данных в формате Антилопа (ну или как это можно назвать) малы или коротки, и необходимо таблицу перевести в формат Барракуда.

Ссылка на мануал есть, но описанная инструкция мне не очень понятна: " Row size too large (>8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help.

The error is due to the fact that the MySQL default InnoDB file format (Antelope) cannot handle more than 10 text columns. Thus you are recommended to change the InnoDB file format to Barracuda using the following command: php admin/cli/mysql_compressed_rows.php ". Последняя строка я так понял для ОС Linux и мне неподходит, в консоли бд команда конвертации не работает почему то.

Уважаемые коллеги, кто столкнулся с данной проблемой, и главное, нашел решение, опишите ваши действия, желательно подробно. Какие команды для бд, или программы или инструкции. Спасибо.

Тех. данные:

ОС Windows Server 2008 R2 Standart

БД MySQL Server 5.6

Moodle 2.8.5+ (Build: 20150417)

Скрин 



Это я…
Re: Антилопа против Барракуды
Группа Особо активный участник форумаГруппа Эксперт по Moodle

В винде нужно выполнить команду в консоли (cmd):

…>путь_к_каталогу_установки_РНР/php.exe путь_к_каталогу_установки_moodle/admin/cli/mysql_compressed_rows.php -f

-f - команда "пофиксить" все ошибки в таблицах

-l - посмотреть таблицы с ошибками

-s - посмотреть, какие SQL-запросы будут выполнены (их можно выполнить вручную в phpMyAdmin)

Нужны права суперпользователя БД, иначе ничего не выйдет. Можно для начала сразу в конфиге MySQL прописать:

innodb_file_per_table = 1

innodb_file_format = Barracuda

Сервер рестартануть, потом запускать mysql_compressed_rows.php

ЗЫ: там всего-то 5-6 таблиц нужно поправить, где кол-во текстовых полей > 10

Изображение пользователя Алексей Грабко
Re: Антилопа против Барракуды
 

Помогло, спасибо

Изображение пользователя Алексей Грабко
Re: Антилопа против Барракуды
 
Снова вышла эта ошибка, хотя все сделал как вы написали. Хм... Что теперь?


Изображение пользователя Лицей № 10
Re: Антилопа против Барракуды
 

Скажите пожалуйста, что нужно сделать, если moodle у нас на ubuntu 14? Спасибо.

PHP Version5.5.9-1ubuntu4.9
Изображение пользователя Максим Звягинцев
Re: Антилопа против Барракуды
 

При вводе команды возникает ошибка или так и должно? Помогите пожалуйста. В SQL запросах пишет что нужны суперпривилегии. Как мне получить доступ?


Это я…
Re: Антилопа против Барракуды
Группа Особо активный участник форумаГруппа Эксперт по Moodle

Переменные, объявляемые через SET GLOBAL, можно навсегда ручками прописать в my.ini. Перезапустить сервер MySQL.

Потом выполнить скрипт mysql_compressed_rows.php

Изображение пользователя Максим Звягинцев
Re: Антилопа против Барракуды
 

Прописать то прописал. В этом нет проблем. Скрипт не запускается. Пишет ошибку. (см. скриншот cmd выше)

php пишет @cannot find module@

а затем ошибка @cannot enable GLOBAL innodb_file_per .....@

Это я…
Re: Антилопа против Барракуды
Группа Особо активный участник форумаГруппа Эксперт по Moodle

PHP как устанавливали/настраивали?

cannot find module - закомментируйте в php.ini строку extension=php_snmp.dll

Изображение пользователя Максим Звягинцев
Re: Антилопа против Барракуды
 

"cannot find module - закомментируйте в php.ini строку extension=php_snmp.dll"

Помогло. Осталось решить проблему с Cannot enable GLOBAL....

До меня уже все было установлено и настроено. Поэтому понятия не имею что и как делали.  

Это я…
Re: Антилопа против Барракуды
Группа Особо активный участник форумаГруппа Эксперт по Moodle
Осталось решить проблему с Cannot enable GLOBAL....

Что там решать, пишет же:

ris

Доступ запрещен, нужны привелегии супер-пользователя, учетка phpmyadmin тоже не позволяет менять глобальные переменные. Поэтому и в CMD ошибка.

ЗЫ: ручками прописать в my.ini. Перезапустить сервер MySQL. Выполнить в phpmyadmin запросы ALTER TABLE…

Изображение пользователя Максим Звягинцев
Re: Антилопа против Барракуды
 

Все. Разобрался я в своей каше. Оказывается я не тот my.ini отредактировал, у меня 2 папки с mysql, а в рабочую mysql эти строки вставил не в то место. Все теперь переконвертировалось, предупреждение исчезло. Спасибо за помощь. 
PS: может кому да пригодится "Сброс пароля mysql под windows" 
 http://www.zonepc.ru/sbros-parolya-mysql-pod-windows/


Изображение пользователя Миша З
Re: Антилопа против Барракуды
 
На каком языке вы общаетесь) я ничего не понял, у меня такая же ошибка. Где взять этот Фаил 
Изображение пользователя Kris KIm
Re: Антилопа против Барракуды
 

Зашел рутом

Ввел следующие команды

все отработало

SET SESSION sql_mode=STRICT_ALL_TABLES;

SET GLOBAL innodb_file_per_table=1;

SET GLOBAL innodb_file_format=Barracuda;

ALTER TABLE имя базы.mdl_certificate ROW_FORMAT=Compressed;


Изображение пользователя Алексей Грабко
Re: Антилопа против Барракуды
 

и снова все нормально после ваших процедур.  Надеюсь постоянно все это делать каждый раз не нужно будет.широко улыбаюсь

Изображение пользователя Alexander Matveyev
Re: Антилопа против Барракуды
 
Стоит ли предавать этому значение? Ситуация та же, обновился с 2.7.1 на 2.7.8+. WinServ 2008 R2+MySQL. 


Изображение пользователя Александр Козлов
Re: Антилопа против Барракуды
 

если ситема указывает то наверно стоит, у пеня лично проблем небыло, когда на 2.9 переходил, все по инструкции сделал и скрипт без проблем заработал, просто через браузер его запустил

Изображение пользователя Alexander Matveyev
Re: Антилопа против Барракуды
 
Просто скрипт через браузер? Без танцев, которые здесь описаны? Это для Unix-ов наверное
Изображение пользователя Александр Козлов
Re: Антилопа против Барракуды
 

На Debian, вроде этой инструкцией пользовался https://docs.moodle.org/28/en/Administration_via_command_line

Изображение пользователя Alexey Piguzov
Re: Антилопа против Барракуды
 
Александр, а можно подробней пожалуйста. Там инструкция большая и даже с переводчиком не очень понятно. А на работающей системе страшно что-либо испортить.
У нас Ubuntu сервер. Думаю тоже решение, что и для Debian прокатит. Только что и куда вводить. Доступ к базе есть, скрипт какой запустить нужно?
Изображение пользователя Александр Козлов
Re: Антилопа против Барракуды
 

вот этот пункт 

Tool for converting tables

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

Изображение пользователя Alexey Piguzov
Re: Антилопа против Барракуды
 

Выполнил в командной строке

$ php /var/www/moo/admin/cli/mysql_compressed_rows.php --list

Показал результат:

mdl_block_exacompexamples       Compact     (needs fixing)
mdl_block_exacomptopics         Compact     (needs fixing)
mdl_certificate                 Compact     (needs fixing)
mdl_data                        Compact     (needs fixing)

То есть есть такие таблицы, которые нужно исправить.

Выполняю следующий пункт и получаю ошибку:

$ php /var/www/moo/admin/cli/mysql_compressed_rows.php --fix
Cannot enable GLOBAL innodb_file_per_table setting, use --showsql option and execute the statements manually.!!! Ошибка записи в базу данных !!!

Как можно это исправить?

Изображение пользователя Alexey Piguzov
Re: Антилопа против Барракуды
 

Сделал через суперпользователя БД. Все получилось. Спасибо!

Изображение пользователя Alexander Matveyev
Re: Антилопа против Барракуды
 

А у меня чего-то не проходит, я все делал по  инструкции, т.е. прописал в my.ini "innodb_file_per_table = 1 innodb_file_format = Barracuda". Потом сделал рестарт mysql, потом в командной строке через TC прописал 

c:\Program Files (x86)\PHP\v5.5\php.exe c:\inetpub\wwwroot\moodle\admin\cli\mysql_compressed_rows.php -f -s -l

У меня появилось окно в котором указывались таблицы и параметры (compact <needs fixing> не помню уже). Вроде все норм, никаких ошибок. Но сообщение так и осталось. Windows Server 2008 R2, IIS 7, Moodle 2.7.8+. Может я что-то упустил?

Update.

Извиняюсь, все получилось. Делал все по порядку c:\Program Files (x86)\PHP\v5.5\php.exe c:\inetpub\wwwroot\moodle\admin\cli\mysql_compressed_rows.php -f, потом уже остальные параметры -s -l смотрел)))

Изображение пользователя Александр ...
Re: Антилопа против Барракуды
 

Как сделать коменду через суперпользователя БД ?

Это я…
Re: Антилопа против Барракуды
Группа Особо активный участник форумаГруппа Эксперт по Moodle
Как сделать коменду через суперпользователя БД ?

Где мудл установлен? Если на хостинге, то вы не сможете выполнить команды от имени суперпользователя. И с этим предупреждением придется смириться. улыбаюсь

Изображение пользователя Александр ...
Re: Антилопа против Барракуды
 

сайт находится на собственном сервере (Freebsd10)

Это я…
Re: Антилопа против Барракуды
Группа Особо активный участник форумаГруппа Эксперт по Moodle

ОК

Выполните скрипт /admin/cli/mysql_compressed_rows.php из консоли. В самом скрипте все команды подробно описаны.

Просмотр проблемных таблиц:

/usr/local/bin/php admin/cli/mysql_compressed_rows.php -l

-i, --info            Показать информацию о БД
-f, --fix             Пофиксить проблемные таблицы
-s, --showsql         Показать выполняемые запросы

Эти запросы можно выполнить и в phpmyadmin, если не получится через скрипт. Права рута тут не нужны, достаточно работать от имени пользователя БД. В my.cnf пропишите innodb_file_per_table=1 и innodb_file_format=Barracuda, перезапустите сервер MySQL

Изображение пользователя Александр ...
Re: Антилопа против Барракуды
 

в консоли с правами рута запускаю скрипт /usr/local/bin/php /site_moodle/moodle/admin/cli/mysql_compressed_rows.php -l - пишет что  "Недостаточно привилегий"

Это я…
Re: Антилопа против Барракуды
Группа Особо активный участник форумаГруппа Эксперт по Moodle

Рут системный и рут в MySQL - разные вещи улыбаюсь

phpmyadmin есть? зайдите в БД moodle и выолните запросы:

ris

Но сначала в конфиге MySQL прописать:

innodb_file_per_table = 1

innodb_file_format = Barracuda

Сервер рестартануть

Изображение пользователя Александр ...
Re: Антилопа против Барракуды
 

Большое спасибо, все помогло. Осталось последнее сообщение

unoconv version not supported якщо цей тест не пройдено, то це свідчить про потенційну проблему.

The version of unoconv you have installed is not supported. Moodle's assignment grading feature requires version 0.7 or higher.

 В портах freebsd есть только версия 0.6, а мудл хочет 0.7 и выше. Видать прийдется немного подождать.

 

Изображение пользователя Александр ...
Re: Антилопа против Барракуды
 

И еще вопрос, после применения "mysql_compressed_rows.php -f" нужно обратно убрать my.cnf  innodb_file_per_table=1 и innodb_file_format=Barracuda или пускай там и остаются ?

Это я…
Re: Антилопа против Барракуды
Группа Особо активный участник форумаГруппа Эксперт по Moodle

Не нужно ничего убирать

Это я…
Re: Антилопа против Барракуды
Группа Особо активный участник форумаГруппа Эксперт по Moodle

unoconv - это скрипт на питоне, с помощью кот. можно конвертировать документы doc/docx/odt/др., загруженные студентом в качестве ответа на задание, в формат PDF (подробнее). Кроме этого скрипта для конвертации нужно ещё устанавливать LibreOffice. Вот и думайте, нужно ли вам это.

А свежую версию unoconv можно установить с гитхаба: https://github.com/dagwieers/unoconv

Изображение пользователя Вадим Лёвкин
Re: Антилопа против Барракуды
 

Доброго времени!

Решил последовать рекомендации, которую видел неоднократно при обновлении moodle:

unsupported_db_table_row_format      Ваша база данных содержит таблицы, использующие формат файла Antelope. Рекомендуется преобразовать эти таблицы в формат файла Barracuda. Подробности об инструменте преобразования таблиц InnoDB в Barracuda смотрите в документации Administration via command line.

В phpmyadmin выполнил первый запрос по инструкции, но получил ошибку (см. скриншот). Что именно сделал не верно и как это исправить? Боюсь напортачить, поэтому решил, что лучше переспросить...

Файл my.cnf не нашел (видел о нем инструкции в рекомендациях выше). Где его искать? Есть доступ и через браузер (файловый менеджер на хостинге) и через FTP. 

Используется версия Moodle 3.3.2 (Build: 20170911) на хостинге nic.ru.

Заранее благодарен за помощь!


Это я…
Re: Антилопа против Барракуды
Группа Особо активный участник форумаГруппа Эксперт по Moodle
Используется версия Moodle 3.3.2 (Build: 20170911) на хостинге nic.ru.

На хостинге ничего не сделаете. Вы не можете менять глобальные настройки сервера MySQL. Поэтому и «Файл my.cnf не нашел»

Изображение пользователя Вадим Лёвкин
Re: Антилопа против Барракуды
 

Вадим, спасибо!

Правильно ли я понимаю, что нужно установить локальный сервер на своем компьютере, на него скачать и на нем изменить базы и затем командой импорта эти базы разместить на хостинге (предварительно удалив прежние)?

Или просто продолжать игнорировать эту рекомендацию? Тогда чего следует избегать в работе с системой moodle?

Это я…
Re: Антилопа против Барракуды
Группа Особо активный участник форумаГруппа Эксперт по Moodle
Правильно ли я понимаю, что нужно установить локальный сервер на своем компьютере, на него скачать и на нем изменить базы и затем командой импорта эти базы разместить на хостинге (предварительно удалив прежние)?

Для преобразования формата таблиц нужна поддержка и соответствующая настройка на стороне сервера. Вы сервер MySQL на хостинге настроить не можете, техподдержка тоже, скорее всего, под вас подстраиваться не будет. Доступ к БД через phpmyadmin есть?

Посмотрите такие переменные:

character_set_server - utf8
innodb_file_format - Antelope
innodb_file_format_max - Antelope

Если их значения такие же, как я написал, то вы ничего не сделаете и можно «забить» на эти предупреждения. Чего избегать - написано в самом мануале: не использовать большие значения данных в таблицах, кот. нельзя сконвертировать в Barracuda. Посмотреть эти таблицы можно командой php admin/cli/mysql_compressed_rows.php --list

mdl_data                                    Compact     (needs fixing)
mdl_data_fields                          Compact     (needs fixing)
mdl_enrol_lti_lti2_consumer       Compact     (needs fixing)
mdl_enrol_paypal                       Compact     (needs fixing)
mdl_lti                                         Compact     (needs fixing)
mdl_user                                    Compact     (needs fixing)
mdl_user_info_field                    Compact     (needs fixing)

Думаю, с этим жить можно. Это что касается предупреждения «unsupported_db_table_row_format»

Есть ещё «mysql_full_unicode_support»: поддержка четырехбайтных символов, которые используют некоторые смайлики (например, Emoji). Для включения, опять же, нужно иметь доступ к конфигурации MySQL, что на хостинге невозможно.

Критично для вас это или нет - решать вам.

Изображение пользователя Вадим Лёвкин
Re: Антилопа против Барракуды
 

Большое спасибо за ответ!!

Доступ к базе через phpmyadmin есть!
Значения указанных Вами переменных следующие:

character_set_server     cp1251
innodb_file_format     Antelope
innodb_file_format_max     Antelope

А команда $ php admin/cli/mysql_compressed_rows.php --list почему-то приводит к ошибке (я эту ошибку как раз на скриншоте выше отобразил). Не знаю как заставить эту команду работать? Что-то неправильно делаю.

Не понимаю пока как "не использовать большие значения данных в таблицах, кот. нельзя сконвертировать в Barracuda". Что нужно сделать, чтобы большие значения появились?

Есть ещё "mysql_full_unicode_support".
Да, такое предупреждение тоже есть.

И ещё есть "site not https", но это, похоже, можно игнорировать.

Это я…
Re: Антилопа против Барракуды
Группа Особо активный участник форумаГруппа Эксперт по Moodle
Значения указанных Вами переменных следующие…

И не лечится никак на хостинге.

А команда $ php admin/cli/mysql_compressed_rows.php --list почему-то приводит к ошибке

Это не для MySQL команда улыбаюсь Доступ по SSH на хостинг есть? Вот в консоли и вводите, только указывайте полный путь до используемой версии РНР

И ещё есть "site not https"

Хостер SSL-сертификает предоставляет? За деньги?

Не хотите платить - переходите на VPS/VDS, тогда всё ПО сервера можно самостоятельно настраивать и получить бесплатный сертификат Let's Encrypt - Free SSL/TLS Certificates

Изображение пользователя Вадим Лёвкин
Re: Антилопа против Барракуды
 

Доступ по SSH есть. Установил WinSCP. Ввожу в консоли команду и выходит ошибка. Видимо неправильно ввожу.

Полный путь: distant.orgpsiholog.ru/docs/admin/cli/mysql_compressed_rows.php

Подскажите, пожалуйста, как должна выглядеть команда в моем случае?

Для образования, так сказать, поскольку все равно изменить ничего не смогу...


Хостер SSL-сертификает предоставляет? За деньги?

Да, за деньги, конечно. Спасибо за идею с VPS/VDS и бесплатным сертификатом, и за ссылку! Посмотрел, дороговат хостинг VPS/VDS...
Пока не буду заморачиваться с этим SSL. Подожду, пока не подешевеет соответствующий хостинг или сертификаты.


Получается, что под moodle желательно сразу искать хостинг с поддержкой формата Barracuda.

Это я…
Re: Антилопа против Барракуды
Группа Особо активный участник форумаГруппа Эксперт по Moodle
Ввожу в консоли команду и выходит ошибка. Видимо неправильно ввожу.

Видимо. Проще будет, если зайдете в каталог с Мудл и запустите команду оттуда:

путь_к_исполняемому_файлу_РНР/php    admin/cli/mysql_compressed_rows.php    --fix

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

/home/t/torg12/public_html/moodle или /home/u/user12345/moodle/public_html и т. п.

Можно на самом сайте посмотреть инфу в переменной DOCUMENT_ROOT (Админка - Сервер - Информация РНР) в разделе Apache Environment

В общем, техподдержка как хочет, так и настраивает улыбаюсь

Изображение пользователя Вадим Лёвкин
Re: Антилопа против Барракуды
 

На хостинге путь к каталогу сайта не всегда виден явно и бывает слегка запутанным.

Да, возможно и у меня так.

Проще будет, если зайдете в каталог с Мудл и запустите команду оттуда

В этом случае базы данных будут преобразованы с антилопы на барракуду не смотря на то, что сервер не настроен на это?
Это я…
Re: Антилопа против Барракуды
Группа Особо активный участник форумаГруппа Эксперт по Moodle
В этом случае базы данных будут преобразованы с антилопы на барракуду не смотря на то, что сервер не настроен на это?

Нет, конечно. Вы же писали:

Значения указанных Вами переменных следующие:
character_set_server     cp1251
innodb_file_format     Antelope
innodb_file_format_max     Antelope

Как вы сможете преобразовать свои таблицы, если хостинг не поддерживает формат Barracuda? С этими предупреждениями на хостинге нужно смириться.

Совет запускать команды из каталога Мудл относился к тому, что не нужно тогда указывать полный путь к скрипту, включая «неявный» домашний каталог.

 

Изображение пользователя Вадим Лёвкин
Re: Антилопа против Барракуды
 

Совет запускать команды из каталога Мудл относился к тому, что не нужно 
тогда указывать полный путь к скрипту, включая «неявный» домашний 
каталог.


Понятно, большое спасибо за ответы!!! Буду юзать как есть, надеюсь moodle не будет в будущем ставить ультиматум и требовать барракуду во что бы то ни стало! улыбаюсь