Страница 4 из 4

Re: Сбрасываются настройки MJD. help!

Добавлено: Пт май 18, 2018 1:45 am
bimail
vrnunya писал(а):
Чт мар 01, 2018 12:22 am
Спасибо. буду ковырять
Добрый день!
Та же проблема с Orange Pi Plus 2.
Устанавливал через скрипт - https://raw.githubusercontent.com/immor ... /installmd.
Все работает, но после перезагрузки все удаленные настройки возвращаются, а новые не сохраняются.
В процессе работы, я смотрел через phpadmin базу, данные в базе изменяются, но после перезагрузки опять возвращаются к исходному значению.
Самое интересное, что, например, удаленный Yandex_tts опять возвращается, но само собой не работает (хотя в настройках речи опять он указывается), а добавленный RHVoice не пропадает. Созданные сценарии тоже пропадают.

Я читал про перезагрузку скриптом, но это не помогло.
Как быть?
Может кто-то поборол этот баг?

Re: Сбрасываются настройки MJD. help!

Добавлено: Пт май 18, 2018 5:35 am
nick7zmail
В первую очередь проверьте цикл сохранения базы.

Отправлено с моего Xperia XZ1 Compact через Tapatalk


Re: Сбрасываются настройки MJD. help!

Добавлено: Пт май 18, 2018 11:50 am
bimail
Ковырялся пол ночи и, похоже, победил.

Тут был комплекс проблем.
Все проблемы не с Majordomo, а с базой данных.

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

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

/usr/bin/mysqldump  --user=ЛОГИН --password=ПАРОЛЬ --no-create-db --add-drop-table --databases db_terminal > db.sql
Так вот из консоли я получал: "mysqldump: Got error: 1286: Unknown storage engine InnoDB when using LOCK TABLES", - и, соответственно, дамп не создавался.
Гугл сказал, что надо включить InnoDB. У меня в файле: "/etc/mysql/mariadb.conf.d/50-server.cnf", - закомментировал "#innodb=OFF".
Ну и перезагрузить mysql.
После этого должно все заработать.

Должно, но не у меня: "mysqldump: Got error: 1932: "Table 'db_terminal.product_units' doesn't exist in engine" when using LOCK TABLES".
Таблица product_units ни в какую не хотела удаляться (говорила, что ее нет), добавляться (говорила, что она есть) и редактироваться (говорила, что ее нет). Тут я поступил радикально - через phpadmin очистил базу и импортировал новую из установочного архива.

Вот после этого дамп стал делаться.

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

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

$filename  = ROOT . '/database_backup/db.sql';
$mysqlDumpPath = "/usr/bin/mysqldump";
$mysqlDumpParam = " --user=" . DB_USER . " --password=" . DB_PASSWORD;
$mysqlDumpParam .= " --no-create-db --add-drop-table --databases " . DB_NAME;
if (file_exists($filename)) rename($filename, $filename . '.prev');
exec($mysqlDumpPath . $mysqlDumpParam . " > " . $filename);
say("Бэкаплю систему",2);

Re: Сбрасываются настройки MJD. help!

Добавлено: Пт май 18, 2018 2:26 pm
nick7zmail
Ну "Бэкаплю систему" громко сказано. Бэкапится только БД...но скрипт этот по идее не нужен. Те же команды выполняются в цикле db_save.

Re: Сбрасываются настройки MJD. help!

Добавлено: Пт май 18, 2018 2:39 pm
bimail
Ну скрипт честно взят из другой ветки :-)
Без него, конечно, можно обойтись, т.к. база бэкапится в цикле.
Но, т.к. это происходит через некоторое время (15 минут), то скрипт лишним не будет, если после изменения в настройках надо сразу перезагрузить.

Re: Сбрасываются настройки MJD. help!

Добавлено: Пт май 18, 2018 2:49 pm
fandaymon
bimail писал(а):
Пт май 18, 2018 11:50 am
Во всех скриптах для бэкапа используется следующая команда:

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

/usr/bin/mysqldump  --user=ЛОГИН --password=ПАРОЛЬ --no-create-db --add-drop-table --databases db_terminal > db.sql
Так вот из консоли я получал: "mysqldump: Got error: 1286: Unknown storage engine InnoDB when using LOCK TABLES", - и, соответственно, дамп не создавался.
Гугл сказал, что надо включить InnoDB. У меня в файле: "/etc/mysql/mariadb.conf.d/50-server.cnf", - закомментировал "#innodb=OFF".
Ну и перезагрузить mysql.
После этого должно все заработать.
Не самая хорошая идея включать InnoDB, так как место в памяти ограничено, а файл создающийся этим протоколом всё время растёт и в конце концов забьёт всю директорию /tmp. Лучше всё-таки найти какая таблица была InnoDb и конвертнуть её в MyISAM. В тех образах которые я видел это 1 таблица в DB_Terminal и 3 системные...

По поводу таблицы, которая вроде есть и вроде её нет - помогает сделать drop table ... и после этого создать её заново, в данном случае при помощи реинсталла модуля app_products