From a649700010bee6c5ffd48cdcfe792658715d534d Mon Sep 17 00:00:00 2001 From: Angie Byron Date: Wed, 5 May 2010 06:28:39 +0000 Subject: #561400 by drewish, Berdir: Allow specifying MySQL socket with DBTNG. --- includes/database/mysql/database.inc | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'includes/database/mysql') diff --git a/includes/database/mysql/database.inc b/includes/database/mysql/database.inc index 249db5234..d46708f3f 100644 --- a/includes/database/mysql/database.inc +++ b/includes/database/mysql/database.inc @@ -20,14 +20,17 @@ class DatabaseConnection_mysql extends DatabaseConnection { // MySQL never supports transactional DDL. $this->transactionalDDLSupport = FALSE; - // Default to TCP connection on port 3306. - if (empty($connection_options['port'])) { - $connection_options['port'] = 3306; - } - $this->connectionOptions = $connection_options; - $dsn = 'mysql:host=' . $connection_options['host'] . ';port=' . $connection_options['port'] . ';dbname=' . $connection_options['database']; + // The DSN should use either a socket or a host/port. + if (isset($connection_options['unix_socket'])) { + $dsn = 'mysql:unix_socket=' . $connection_options['unix_socket']; + } + else { + // Default to TCP connection on port 3306. + $dsn = 'mysql:host=' . $connection_options['host'] . ';port=' . (empty($connection_options['port']) ? 3306 : $connection_options['port']); + } + $dsn .= ';dbname=' . $connection_options['database']; parent::__construct($dsn, $connection_options['username'], $connection_options['password'], array( // So we don't have to mess around with cursors and unbuffered queries by default. PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => TRUE, -- cgit v1.2.3