diff --git a/datamodels/2.x/itop-backup/status.php b/datamodels/2.x/itop-backup/status.php index 5eead230dc..d3bf6cef7c 100644 --- a/datamodels/2.x/itop-backup/status.php +++ b/datamodels/2.x/itop-backup/status.php @@ -96,7 +96,7 @@ function GenerateBackupsList(string $sListTitleDictKey, string $sNoRecordDictKey // $sMySQLBinDir = MetaModel::GetConfig()->GetModuleSetting('itop-backup', 'mysql_bindir', ''); $sMySQLBinDir = utils::ReadParam('mysql_bindir', $sMySQLBinDir, true); - $sMySQLDump = DBBackup::MakeSafeMySQLCommand($sMySQLBinDir, 'mysqldump'); + $sMySQLDump = DBBackup::MakeSafeMySQLCommand($sMySQLBinDir, DBBackup::GetDumpFunction()); $sCommand = "$sMySQLDump -V 2>&1"; $aOutput = []; diff --git a/setup/backup.class.inc.php b/setup/backup.class.inc.php index f1609791be..c1807d8264 100644 --- a/setup/backup.class.inc.php +++ b/setup/backup.class.inc.php @@ -346,7 +346,7 @@ public function DoBackup($sBackupFileName) $this->LogInfo("Starting backup of $this->sDBHost/$this->sDBName(suffix:'$this->sDBSubName')"); $sMySQLBinDir = utils::ReadParam('mysql_bindir', $this->sMySQLBinDir, true); - $sMySQLDump = $this->MakeSafeMySQLCommand($sMySQLBinDir, 'mysqldump'); + $sMySQLDump = $this->MakeSafeMySQLCommand($sMySQLBinDir, DBBackup::GetDumpFunction()); // Store the results in a temporary file $sTmpFileName = self::EscapeShellArg($sBackupFileName); @@ -603,6 +603,16 @@ public static function MakeSafeMySQLCommand($sMySQLBinDir, string $sCmd) return '"'.$sMySQLCommand.'"'; } + + public static function GetDumpFunction(): string + { + $sVersion = CMDBSource::GetDBVersion(); + if (stripos($sVersion, 'MariaDB') !== false) { + return 'mariadb-dump'; + } + + return 'mysqldump'; + } } class TarGzArchive implements BackupArchive diff --git a/setup/setuputils.class.inc.php b/setup/setuputils.class.inc.php index d04c920df1..cebe1563b2 100644 --- a/setup/setuputils.class.inc.php +++ b/setup/setuputils.class.inc.php @@ -559,12 +559,15 @@ public static function CheckBackupPrerequisites($sDBBackupPath, $sMySQLBinDir = $aResult[] = new CheckResult(CheckResult::ERROR, "The PHP exec() function has been disabled on this server"); } + MetaModel::LoadConfig(utils::GetConfig()); // availability of mysqldump if (empty($sMySQLBinDir) && null != MetaModel::GetConfig()) { $sMySQLBinDir = MetaModel::GetConfig()->GetModuleSetting('itop-backup', 'mysql_bindir', ''); } try { - $sMySQLDump = DBBackup::MakeSafeMySQLCommand($sMySQLBinDir, 'mysqldump'); + $oConfig = MetaModel::GetConfig(); + CMDBSource::InitFromConfig($oConfig); + $sMySQLDump = DBBackup::MakeSafeMySQLCommand($sMySQLBinDir, DBBackup::GetDumpFunction()); } catch (Exception $e) { $aResult[] = new CheckResult(CheckResult::ERROR, $e->getMessage()); return $aResult;