После перезагрузки сбрасываются настройки MajorDoMo

Posted by

После установки появилась первая проблема — все работает, но после перезагрузки все удаленные настройки возвращаются, а новые не сохраняются, т.е. все, что делаешь сбрасывается в первоначальное значение.

Писал на форум. Там предлагали: «В первую очередь проверить цикл сохранения базы.»

MajorDoMo работает следующим образом — мы вносим изменения в системе, эти изменения заносятся в базу, записываются в файлы и т.п. Каждые 15 минут (это прописано в цикле сохранения базы) делается backup базы (хранится 2 копии: текущая и предыдущая). После перезагрузки сервера база восстанавливается из backup.

Так вот, если после перезагрузки сбрасываются настройки, то это значит, что backup не делается и каждый раз при перезагрузке заливается первоначальная версия базы.

На форуме я нашел, что backup делается командой:/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 очистил базу и импортировал новую из установочного архива.

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

Но на форуме сказали, что «не самая хорошая идея включать InnoDB, так как место в памяти ограничено, а файл создающийся этим протоколом всё время растёт и в конце концов забьёт всю директорию /tmp. Лучше всё-таки найти какая таблица была InnoDb и конвертнуть её в MyISAM.»

Так что я вернул настройку «innodb=OFF» назад перезагрузил mysql. И, о чудо, все продолжило работать.

Получается, что все проблемы были из-за таблицы product_units которая заблокировалась.

Вывод:

Если возникла такая проблема, то можно сперва проверить через консоль какая таблица заблокирована, а потом реинсталлировать модуль ( в моем случае app_products).

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