Ковырялся пол ночи и, похоже, победил.
Тут был комплекс проблем.
Все проблемы не с 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);