N°7150 - Backup : on MariaDB >= 11.0.1 call mariadb-dump instead of mysqldump

This commit is contained in:
Anne-Cath
2026-02-27 16:36:18 +01:00
parent fc967c06ce
commit 4ecf81d032
3 changed files with 13 additions and 3 deletions

View File

@@ -96,7 +96,7 @@ try {
//
$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 = [];

View File

@@ -346,7 +346,7 @@ class DBBackup
$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 @@ EOF;
return '"'.$sMySQLCommand.'"';
}
public static function GetDumpFunction(): string
{
$version = CMDBSource::QueryToScalar('SELECT VERSION()');
if (is_string($version) && stripos($version, 'MariaDB') !== false) {
return 'mariadb-dump';
}
return 'mysqldump';
}
}
class TarGzArchive implements BackupArchive

View File

@@ -564,7 +564,7 @@ class SetupUtils
$sMySQLBinDir = MetaModel::GetConfig()->GetModuleSetting('itop-backup', 'mysql_bindir', '');
}
try {
$sMySQLDump = DBBackup::MakeSafeMySQLCommand($sMySQLBinDir, 'mysqldump');
$sMySQLDump = DBBackup::MakeSafeMySQLCommand($sMySQLBinDir, DBBackup::GetDumpFunction());
} catch (Exception $e) {
$aResult[] = new CheckResult(CheckResult::ERROR, $e->getMessage());
return $aResult;