После установки появилась первая проблема — все работает, но после перезагрузки все удаленные настройки возвращаются, а новые не сохраняются, т.е. все, что делаешь сбрасывается в первоначальное значение.
Писал на форум. Там предлагали: «В первую очередь проверить цикл сохранения базы.»
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).
Ну, а если это не поможет, то удалить таблицы и импортировать их заново.