From 246e4a9f50367a8ec5ce9f7e6b14d321b708b3df Mon Sep 17 00:00:00 2001 From: Stephen Abello Date: Thu, 6 Jul 2023 09:28:01 +0200 Subject: [PATCH] =?UTF-8?q?=20N=C2=B06123=20-=20Fix=20warnings=20when=20la?= =?UTF-8?q?unching=20a=20backup=20on=20MariaDB=20>=20v10.6.1=20with=20loca?= =?UTF-8?q?lhost=20dbhost?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup/backup.class.inc.php | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/setup/backup.class.inc.php b/setup/backup.class.inc.php index 952ce2576..a28755afc 100644 --- a/setup/backup.class.inc.php +++ b/setup/backup.class.inc.php @@ -307,6 +307,7 @@ class DBBackup $sPortOption = self::GetMysqliCliSingleOption('port', $this->iDBPort); $sTlsOptions = self::GetMysqlCliTlsOptions($this->oConfig); + $sProtocolOption = self::GetMysqlCliTransportOption($this->sDBHost); $sMysqlVersion = CMDBSource::GetDBVersion(); $bIsMysqlSupportUtf8mb4 = (version_compare($sMysqlVersion, self::MYSQL_VERSION_WITH_UTF8MB4_IN_PROGRAMS) === -1); @@ -327,8 +328,8 @@ EOF; // Note: opt implicitely sets lock-tables... which cancels the benefit of single-transaction! // skip-lock-tables compensates and allows for writes during a backup - $sCommand = "$sMySQLDump --defaults-extra-file=\"$sMySQLDumpCnfFile\" --opt --skip-lock-tables --default-character-set=".$sMysqldumpCharset." --add-drop-database --single-transaction --host=$sHost $sPortOption --user=$sUser $sTlsOptions --result-file=$sTmpFileName $sDBName $sTables 2>&1"; - $sCommandDisplay = "$sMySQLDump --defaults-extra-file=\"$sMySQLDumpCnfFile\" --opt --skip-lock-tables --default-character-set=".$sMysqldumpCharset." --add-drop-database --single-transaction --host=$sHost $sPortOption --user=xxxxx $sTlsOptions --result-file=$sTmpFileName $sDBName $sTables"; + $sCommand = "$sMySQLDump --defaults-extra-file=\"$sMySQLDumpCnfFile\" --opt --skip-lock-tables --default-character-set=".$sMysqldumpCharset." --add-drop-database --single-transaction --host=$sHost $sPortOption $sProtocolOption --user=$sUser $sTlsOptions --result-file=$sTmpFileName $sDBName $sTables 2>&1"; + $sCommandDisplay = "$sMySQLDump --defaults-extra-file=\"$sMySQLDumpCnfFile\" --opt --skip-lock-tables --default-character-set=".$sMysqldumpCharset." --add-drop-database --single-transaction --host=$sHost $sPortOption $sProtocolOption --user=xxxxx $sTlsOptions --result-file=$sTmpFileName $sDBName $sTables"; // Now run the command for real $this->LogInfo("backup: generate data file with command: $sCommandDisplay"); @@ -521,6 +522,24 @@ EOF; return ' --'.$sCliArgName.'='.self::EscapeShellArg($sData); } + /** + * @param string $sHost + * + * @return string . + + * @since 2.7.9 3.0.4 3.1.1 N°6123 + */ + public static function GetMysqlCliTransportOption(string $sHost) + { + $sTransportOptions = ''; + + if($sHost === 'localhost'){ + $sTransportOptions = '--protocol=tcp'; + } + + return $sTransportOptions; + } + /** * @return string the command to launch mysqldump (without its params) */