SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 05.06.2020 12:41:34

ujhjl
Участник
Зарегистрирован: 18.05.2018
Сообщений: 22

Исправить базу.

Добрый день. Подскажите как можно исправить базу moodle 3.8.2+.


unsupported_db_table_row_format   
если этот тест не пройден, это указывает на потенциальную проблему
В вашей базе данных есть таблицы, использующие антилопу в качестве формата файла. Рекомендуется преобразовать таблицы в формат файла Barracuda. Смотрите документацию Администрирование через командную строку для подробностей инструмента для преобразования таблиц InnoDB в Barracuda.

Пробовал вводить.

php admin / cli / mysql_compressed_rows.php --list
php admin / cli / mysql_compressed_rows.php --fix

Команды не отрабатывают, может как то внутри самой базы возможно что то нужно поправить?
Не силен в mysql к сожалению совсем.

Неактивен

 

#2 05.06.2020 12:56:25

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2419

Re: Исправить базу.

Боюсь, что с этим вопросом лучше обратиться на форум moodle
https://moodle.org/mod/forum/discuss.php?d=314802
куда-то сюда, например.

>Команды не отрабатывают,
А что это значит? что пишут команды? приведите выхлоп


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 05.06.2020 13:05:59

ujhjl
Участник
Зарегистрирован: 18.05.2018
Сообщений: 22

Re: Исправить базу.

root@ispa:/var/www/www-root/data/www/mydomen# php admin/cli/mysql_compressed_rows.php -f
!!! error/generalexceptionmessage !!!

Неактивен

 

#4 05.06.2020 13:07:39

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2419

Re: Исправить базу.

нде, неинформативно (. А в логи пишется что-нибудь?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 05.06.2020 13:10:16

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Исправить базу.

Неактивен

 

#6 05.06.2020 13:14:11

ujhjl
Участник
Зарегистрирован: 18.05.2018
Сообщений: 22

Re: Исправить базу.

vasya написал:

https://sqlinfo.ru/forum/viewtopic.php?id=7676

Видел это сообщение все сделал кроме третьего пункта он как раз мне и не понятен.

Переделать таблички (ALTER TABLE tablename ROW_FORMAT=DYNAMIC).

Можно как то внутри базы переделать таблички?
а потом например импортировать?
В базу могу заходить проблем нету, но что там нужно ввести чтобы исправить не догоняю.

Отредактированно ujhjl (05.06.2020 13:16:17)

Неактивен

 

#7 05.06.2020 13:28:39

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Исправить базу.

в базе, т.е. в консоли mysql (или с помощью иного клиента phpadmin и т.д.) выполнить команды
ALTER TABLE tablename ROW_FORMAT=DYNAMIC
вместо tablename имя таблицы и так нужное кол-во раз

Неактивен

 

#8 05.06.2020 13:35:08

ujhjl
Участник
Зарегистрирован: 18.05.2018
Сообщений: 22

Re: Исправить базу.

vasya написал:

в базе, т.е. в консоли mysql (или с помощью иного клиента phpadmin и т.д.) выполнить команды
ALTER TABLE tablename ROW_FORMAT=DYNAMIC
вместо tablename имя таблицы и так нужное кол-во раз

Так вопрос как узнать какие таблицы?
А все сразу возможно как то преобразовать?

Отредактированно ujhjl (05.06.2020 13:36:22)

Неактивен

 

#9 05.06.2020 14:02:43

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Исправить базу.

SELECT CONCAT("ALTER TABLE `", TABLE_SCHEMA,"`.`", TABLE_NAME, "` ROW_FORMAT=DYNAMIC;") AS MySQLCMD FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'имя вашей базы данных';

сформирует нужный список команд

для дальнейшей автоматизации можно написать хранимую процедуру, которая их выполнит, см
https://webew.ru/articles/178.webew
https://webew.ru/articles/200.webew

Неактивен

 

#10 05.06.2020 14:57:30

ujhjl
Участник
Зарегистрирован: 18.05.2018
Сообщений: 22

Re: Исправить базу.

Команду выполнил но не помогло. Все равно висит.

Your database has tables using Antelope as the file format. You are recommended to convert the tables to the Barracuda file format. See the documentation Administration via command line for details of a tool for converting InnoDB tables to Barracuda.

Неактивен

 

#11 05.06.2020 15:03:33

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Исправить базу.

какую именно команду выполнили?

Неактивен

 

#12 05.06.2020 15:09:43

ujhjl
Участник
Зарегистрирован: 18.05.2018
Сообщений: 22

Re: Исправить базу.

SELECT CONCAT("ALTER TABLE `", TABLE_SCHEMA,"`.`", TABLE_NAME, "` ROW_FORMAT=DYNAMIC;") AS MySQLCMD FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'моя бд';

Неактивен

 

#13 05.06.2020 15:13:17

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Исправить базу.

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

это просто автоматизация. чтобы в ALTER TABLE tablename ROW_FORMAT=DYNAMIC не вставлять руками имя каждой таблицы из бд

Неактивен

 

#14 05.06.2020 15:18:57

ujhjl
Участник
Зарегистрирован: 18.05.2018
Сообщений: 22

Re: Исправить базу.

vasya написал:

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

это просто автоматизация. чтобы в ALTER TABLE tablename ROW_FORMAT=DYNAMIC не вставлять руками имя каждой таблицы из бд

Он мне выводит такое

ALTER TABLE `veron`.`mdl_analytics_indicator_calc` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_analytics_models` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_analytics_models_log` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_analytics_predict_samples` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_analytics_prediction_actions` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_analytics_predictions` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_analytics_train_samples` ALTER TABLE `veron`.`mdl_analytics_indicator_calc` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_analytics_models` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_analytics_models_log` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_analytics_predict_samples` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_analytics_prediction_actions` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_analytics_predictions` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_analytics_train_samples` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_analytics_used_analysables` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_analytics_used_files` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_assign` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_assign_grades` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_assign_overrides` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_assign_plugin_config` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_assign_submission` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_assign_user_flags` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_assign_user_mapping` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_assignfeedback_comments` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_assignfeedback_editpdf_annot` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_assignfeedback_editpdf_cmnt` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_assignfeedback_editpdf_queue` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_assignfeedback_editpdf_quick` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_assignfeedback_editpdf_rot` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_assignfeedback_file` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_assignment` ROW_FORMAT=DYNAMIC;
ALTER TABLE `veron`.`mdl_assignment_submissions` ROW_FORMAT=DYNAMIC;

и таких куча страниц но везде ROW_FORMAT=DYNAMIC;

Неактивен

 

#15 05.06.2020 15:24:50

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Исправить базу.

все правильно, теперь все эти запросы (alter table .. =DYNAMIC) нужно выполнить

Неактивен

 

#16 05.06.2020 15:26:22

ujhjl
Участник
Зарегистрирован: 18.05.2018
Сообщений: 22

Re: Исправить базу.

vasya написал:

все правильно, теперь все эти запросы (alter table .. =DYNAMIC) нужно выполнить

То есть брать по очереди и запускать?
там 18 страниц, а одной командой это не возможно сделать?
Ну как то сказать что все таблицы? Понимаю что могу глупость написать, но вдруг.

ALTER TABLE `veron`.`mdl_analytics_indicator_calc` ROW_FORMAT=DYNAMIC;

При чем когда делаю они возвращают пустой результат

MySQL вернула пустой результат (т.е. ноль строк). (Запрос занял 0.1083 сек.)
ALTER TABLE `veron`.`mdl_assignfeedback_editpdf_cmnt` ROW_FORMAT=DYNAMIC

Отредактированно ujhjl (05.06.2020 15:29:22)

Неактивен

 

#17 05.06.2020 15:29:42

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Исправить базу.

ujhjl написал:

То есть брать по очереди и запускать?
там 18 страниц

ALTER TABLE `veron`.`mdl_analytics_indicator_calc` ROW_FORMAT=DYNAMIC;

да, запускать по одному

или написать процедуру, которая сделает это в цикле

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

Неактивен

 

#18 05.06.2020 15:31:30

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Исправить базу.

ujhjl написал:

При чем когда делаю они возвращают пустой результат

MySQL вернула пустой результат (т.е. ноль строк). (Запрос занял 0.1083 сек.)

так и должно быть

Неактивен

 

#19 05.06.2020 15:34:24

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Исправить базу.

ujhjl написал:

То есть брать по очереди и запускать?
там 18 страниц, а одной командой это не возможно сделать?
Ну как то сказать что все таблицы? Понимаю что могу глупость написать, но вдруг.

или сделать бэкап, удалить базу, обратно залить (по идее должно сработать)

Неактивен

 

#20 05.06.2020 15:36:19

ujhjl
Участник
Зарегистрирован: 18.05.2018
Сообщений: 22

Re: Исправить базу.

Супер спасибо помогло.
Выделил блоками и sql запрос выполнил.
А базу вроде перезаливал не помогало.

Отредактированно ujhjl (05.06.2020 15:37:09)

Неактивен

 

#21 05.06.2020 22:08:11

ujhjl
Участник
Зарегистрирован: 18.05.2018
Сообщений: 22

Re: Исправить базу.

Рано обрадовался теперь вылезло вот такое и не дает регистрироваться пользователям.

И ругается на кодировку БД. как можно изменить COLLATION

Error reading from database

More information about this error

×Debug info: COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'utf8'
SELECT 'x'
FROM mdl_user
WHERE LOWER(email) COLLATE utf8mb4_bin = LOWER(?)
AND id IN (SELECT id
FROM mdl_user
WHERE email = ?
AND mnethostid = ?) LIMIT 0, 1
[array (
0 => 'as@mail.ru',
1 => 'as@mail.ru',
2 => '1',
)]
Error code: dmlreadexception
×Stack trace:
line 486 of /lib/dml/moodle_database.php: dml_read_exception thrown
line 1186 of /lib/dml/mysqli_native_moodle_database.php: call to moodle_database->query_end()
line 1918 of /lib/dml/moodle_database.php: call to mysqli_native_moodle_database->get_recordset_sql()
line 1048 of /lib/authlib.php: call to moodle_database->record_exists_sql()
line 150 of /login/signup_form.php: call to signup_validate_data()
line 615 of /lib/formslib.php: call to login_signup_form->validation()
line 551 of /lib/formslib.php: call to moodleform->validate_defined_fields()
line 661 of /lib/formslib.php: call to moodleform->is_validated()
line 85 of /login/signup.php: call to moodleform->get_data()
 

Отредактированно ujhjl (05.06.2020 22:12:35)

Неактивен

 

#22 06.06.2020 08:50:20

ujhjl
Участник
Зарегистрирован: 18.05.2018
Сообщений: 22

Re: Исправить базу.

Сам отвечу, поменял

DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC
на


DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPRESSED

Все заработало. Ошибка исчезла, рега работает.
Интересно почему только?

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson