From b85fd36ac3530fd46dcad01aa3c5e79b00ac6d9b Mon Sep 17 00:00:00 2001 From: "cheng.wu" Date: Tue, 14 May 2024 19:53:37 +0800 Subject: [PATCH] fix issue about can't connect to local socket --- lib/SqlDump/SqlDumpMySQL.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/SqlDump/SqlDumpMySQL.php b/lib/SqlDump/SqlDumpMySQL.php index c8601448..04b2b7fb 100644 --- a/lib/SqlDump/SqlDumpMySQL.php +++ b/lib/SqlDump/SqlDumpMySQL.php @@ -69,7 +69,12 @@ public function __construct() { public function export(array $params, string $filename): void { $connect = sprintf('mysql:host=%s;dbname=%s', $params[ISqlDump::DB_HOST], $params[ISqlDump::DB_NAME]); if (false === empty($params[ISqlDump::DB_PORT])) { - $connect .= sprintf(';port=%u', $params[ISqlDump::DB_PORT]); + if (is_numeric($params[ISqlDump::DB_PORT])) { + $connect .= sprintf(';port=%u', $params[ISqlDump::DB_PORT]); + } + if (str_ends_with($params[ISqlDump::DB_PORT], 'sock')) { + $connect = sprintf('mysql:unix_socket=%s;dbname=%s', $params[ISqlDump::DB_PORT], $params[ISqlDump::DB_NAME]); + } } $settings = [ 'compress' => Mysqldump::NONE,