diff --git a/setup/upgrade.php b/setup/upgrade.php
index 0eb67c2..8979a73 100644
--- a/setup/upgrade.php
+++ b/setup/upgrade.php
@@ -340,19 +340,33 @@ function create_backup_stmt($targetfile=null)
$adminPwd = $oKTConfig->get('db/dbAdminPass');
$dbHost = $oKTConfig->get('db/dbHost');
$dbName = $oKTConfig->get('db/dbName');
+
$dbPort = trim($oKTConfig->get('db/dbPort'));
- if ($dbPort=='' || $dbPort=='default') $dbPort = get_cfg_var('mysql.default_port');
-
+ if (empty($dbPort) || $dbPort=='default') $dbPort = get_cfg_var('mysql.default_port');
+ if (empty($dbPort)) $dbPort='3306';
+ $dbSocket = trim($oKTConfig->get('db/dbSocket'));
+ if (empty($dbSocket) || $dbSocket=='default') $dbSocket = get_cfg_var('mysql.default_socket');
+ if (empty($dbSocket)) $dbSocket='../tmp/mysql.sock';
+
$date=date('Y-m-d-H-i-s');
$dir=resolveMysqlDir();
-
+
$info['dir']=$dir;
$prefix='';
if (OS_UNIX)
{
- $prefix= "./";
+ $prefix .= "./";
+ }
+
+ if (@stat($dbSocket) !== false)
+ {
+ $mechanism="--socket=\"$dbSocket\"";
+ }
+ else
+ {
+ $mechanism="--port=\"$dbPort\"";
}
$tmpdir=resolveTempDir();
@@ -362,13 +376,12 @@ function create_backup_stmt($targetfile=null)
$targetfile="$tmpdir/kt-backup-$date.sql";
}
-
- $stmt = $prefix . "mysqldump --user=\"$adminUser\" -p --port=$dbPort \"$dbName\" > \"$targetfile\"";
+ $stmt = $prefix . "mysqldump --user=\"$adminUser\" -p $mechanism \"$dbName\" > \"$targetfile\"";
$info['display']=$stmt;
$info['target']=$targetfile;
- $stmt = $prefix. "mysqldump --user=\"$adminUser\" --password=\"$adminPwd\" --port=$dbPort \"$dbName\" > \"$targetfile\"";
+ $stmt = $prefix. "mysqldump --user=\"$adminUser\" --password=\"$adminPwd\" $mechanism \"$dbName\" > \"$targetfile\"";
$info['cmd']=$stmt;
return $info;
}
@@ -383,8 +396,11 @@ function create_restore_stmt($targetfile)
$dbName = $oKTConfig->get('db/dbName');
$dbPort = trim($oKTConfig->get('db/dbPort'));
if ($dbPort=='' || $dbPort=='default')$dbPort = get_cfg_var('mysql.default_port');
+ if (empty($dbPort)) $dbPort='3306';
+ $dbSocket = trim($oKTConfig->get('db/dbSocket'));
+ if (empty($dbSocket) || $dbSocket=='default') $dbSocket = get_cfg_var('mysql.default_socket');
+ if (empty($dbSocket)) $dbSocket='../tmp/mysql.sock';
-
$dir=resolveMysqlDir();
$info['dir']=$dir;
@@ -394,22 +410,30 @@ function create_restore_stmt($targetfile)
{
$prefix .= "./";
}
-
+
+ if (@stat($dbSocket) !== false)
+ {
+ $mechanism="--socket=\"$dbSocket\"";
+ }
+ else
+ {
+ $mechanism="--port=\"$dbPort\"";
+ }
$tmpdir=resolveTempDir();
- $stmt = $prefix ."mysqladmin --user=\"$adminUser\" -p --port=$dbPort drop \"$dbName\"
";
- $stmt .= $prefix ."mysqladmin --user=\"$adminUser\" -p --port=$dbPort create \"$dbName\"
";
+ $stmt = $prefix ."mysqladmin --user=\"$adminUser\" -p $mechanism drop \"$dbName\"
";
+ $stmt .= $prefix ."mysqladmin --user=\"$adminUser\" -p $mechanism create \"$dbName\"
";
- $stmt .= $prefix ."mysql --user=\"$adminUser\" -p --port=$dbPort \"$dbName\" < \"$targetfile\"\n";
+ $stmt .= $prefix ."mysql --user=\"$adminUser\" -p $mechanism \"$dbName\" < \"$targetfile\"\n";
$info['display']=$stmt;
- $stmt = $prefix ."mysqladmin --user=\"$adminUser\" --force --password=\"$adminPwd\" --port=$dbPort drop \"$dbName\"\n";
- $stmt .= $prefix ."mysqladmin --user=\"$adminUser\" --password=\"$adminPwd\" --port=$dbPort create \"$dbName\"\n";
+ $stmt = $prefix ."mysqladmin --user=\"$adminUser\" --force --password=\"$adminPwd\" $mechanism drop \"$dbName\"\n";
+ $stmt .= $prefix ."mysqladmin --user=\"$adminUser\" --password=\"$adminPwd\" $mechanism create \"$dbName\"\n";
- $stmt .= $prefix ."mysql --user=\"$adminUser\" --password=\"$adminPwd\" --port=$dbPort \"$dbName\" < \"$targetfile\"";
+ $stmt .= $prefix ."mysql --user=\"$adminUser\" --password=\"$adminPwd\" $mechanism \"$dbName\" < \"$targetfile\"";
$info['cmd']=$stmt;
return $info;
}
@@ -608,13 +632,12 @@ document.location='?go=RestoreConfirm';
function restoreConfirm()
{
- if (!isset($_SESSION['backupFile']) || !is_file($_SESSION['backupFile']))
+ if (!isset($_SESSION['backupFile']) || !is_file($_SESSION['backupFile']) || filesize($_SESSION['backupFile']) == 0)
{
restoreSelect();
exit;
}
-
-
+
title('Confirm Restore');
$status = $_SESSION['backupStatus'];
$filename=$_SESSION['backupFile'];
@@ -908,7 +931,7 @@ function restore()
$stmt=create_restore_stmt($filename);
$dir=$stmt['dir'];
-
+
if (is_file($dir . '/mysql') || is_file($dir . '/mysql.exe'))