From ff439272b9105ad2132c693e7a0947fff05b453d Mon Sep 17 00:00:00 2001 From: k-alin <63866963+k-alin@users.noreply.github.com> Date: Sun, 20 Feb 2022 17:45:51 +0100 Subject: [PATCH] mysql connection via socket if location of mysqld.sock was specified --- src/Database/Database.php | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/Database/Database.php b/src/Database/Database.php index effed6e5e9..79415c9f4a 100644 --- a/src/Database/Database.php +++ b/src/Database/Database.php @@ -126,7 +126,7 @@ class Database if (!$this->configCache->get('database', 'disable_pdo') && class_exists('\PDO') && in_array('mysql', PDO::getAvailableDrivers())) { $this->driver = self::PDO; - $connect = "mysql:host=" . $server . ";dbname=" . $db . ";unix_socket=" . $socket; + $connect = "mysql:host=" . $server . ";dbname=" . $db; if ($port > 0) { $connect .= ";port=" . $port; @@ -135,8 +135,12 @@ class Database if ($charset) { $connect .= ";charset=" . $charset; } - - try { + + if ($socket) { + $connect .= ";$unix_socket=" . $socket; + } + + try { $this->connection = @new PDO($connect, $user, $pass, [PDO::ATTR_PERSISTENT => $persistent]); $this->connection->setAttribute(PDO::ATTR_EMULATE_PREPARES, $this->pdo_emulate_prepares); $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT); @@ -150,9 +154,9 @@ class Database $this->driver = self::MYSQLI; if ($port > 0) { - $this->connection = @new mysqli($server, $user, $pass, $db, $port, $socket); + $this->connection = @new mysqli($server, $user, $pass, $db, $port); } else { - $this->connection = @new mysqli($server, $user, $pass, $db, $socket); + $this->connection = @new mysqli($server, $user, $pass, $db); } if (!mysqli_connect_errno()) { @@ -161,6 +165,11 @@ class Database if ($charset) { $this->connection->set_charset($charset); } + + if ($socket) { + $this->connection->set_socket($socket); + } + } }