Allow Unix sockets for database connection

This commit is contained in:
Michael Foster 2013-08-28 20:09:30 +10:00
parent 10d59e949a
commit c31e374a71
2 changed files with 15 additions and 5 deletions

View File

@ -77,16 +77,18 @@
// Database driver (http://www.php.net/manual/en/pdo.drivers.php) // Database driver (http://www.php.net/manual/en/pdo.drivers.php)
// Only MySQL is supported by Tinyboard at the moment, sorry. // Only MySQL is supported by Tinyboard at the moment, sorry.
$config['db']['type'] = 'mysql'; $config['db']['type'] = 'mysql';
// Hostname or IP address // Hostname, IP address or Unix socket (prefixed with ":")
$config['db']['server'] = 'localhost'; $config['db']['server'] = 'localhost';
// Example: Unix socket
// $config['db']['server'] = ':/tmp/mysql.sock';
// Login // Login
$config['db']['user'] = ''; $config['db']['user'] = '';
$config['db']['password'] = ''; $config['db']['password'] = '';
// Tinyboard database // Tinyboard database
$config['db']['database'] = ''; $config['db']['database'] = '';
// Table prefix // Table prefix (optional)
$config['db']['prefix'] = ''; $config['db']['prefix'] = '';
// Use a persistent connection (experimental) // Use a persistent connection (experimental; benefits unknown)
$config['db']['persistent'] = false; $config['db']['persistent'] = false;
// Anything more to add to the DSN string (eg. port=xxx;foo=bar) // Anything more to add to the DSN string (eg. port=xxx;foo=bar)
$config['db']['dsn'] = ''; $config['db']['dsn'] = '';

View File

@ -43,9 +43,17 @@ class PreparedQueryDebug {
function sql_open() { function sql_open() {
global $pdo, $config; global $pdo, $config;
if ($pdo) return true; if ($pdo)
return true;
$dsn = $config['db']['type'] . ':host=' . $config['db']['server'] . ';dbname=' . $config['db']['database']; if (isset($config['db']['server'][0]) && $config['db']['server'][0] == ':')
$unix_socket = substr($config['db']['server'], 1);
else
$unix_socket = false;
$dsn = $config['db']['type'] . ':' .
($unix_socket ? 'unix_socket=' . $unix_socket : 'host=' . $config['db']['server']) .
';dbname=' . $config['db']['database'];
if (!empty($config['db']['dsn'])) if (!empty($config['db']['dsn']))
$dsn .= ';' . $config['db']['dsn']; $dsn .= ';' . $config['db']['dsn'];
try { try {