diff --git a/setup/migrate/steps/migrateDatabase.php b/setup/migrate/steps/migrateDatabase.php old mode 100644 new mode 100755 index 419e195..82c34e7 --- a/setup/migrate/steps/migrateDatabase.php +++ b/setup/migrate/steps/migrateDatabase.php @@ -122,6 +122,7 @@ class migrateDatabase extends Step $dbSettings = $installation['dbSettings']; $location = $installation['location']; $port = $this->util->getPort($location); + $socket = $this->getSocket($location); $tmpFolder = $this->resolveTempDir(); if(WINDOWS_OS) { $termOrBash = "command prompt window"; @@ -143,7 +144,11 @@ class migrateDatabase extends Step $dbName = $dbSettings['dbName']; if(!$manual) { // Try to export database $sqlFile = $tmpFolder."/kt-backup-$date.sql"; - $cmd = $exe.' -u"'.$dbAdminUser.'" -p"'.$dbAdminPass.'" --port="'.$port.'" '.$dbName.' > '.$sqlFile; + if($socket != "") + $cmd = $exe.' -u"'.$dbAdminUser.'" -p"'.$dbAdminPass.'" --port="'.$port.'" '.' --socket="'.$socket.'" '.$dbName.' > '.$sqlFile; + else + $cmd = $exe.' -u"'.$dbAdminUser.'" -p"'.$dbAdminPass.'" --port="'.$port.'" '.$dbName.' > '.$sqlFile; + echo $cmd; $response = $this->util->pexec($cmd); } if(file_exists($sqlFile)) { @@ -162,7 +167,10 @@ class migrateDatabase extends Step } else { $sqlFile = "/tmp/kt-backup-$date.sql"; // Use tmp instead due to permissions } - $cmd = $exe.' -u"'.$dbAdminUser.'" -p"'.$dbAdminPass.'" --port="'.$port.'" '.$dbName.' > '.$sqlFile; + if($socket != "") + $cmd = $exe.' -u"'.$dbAdminUser.'" -p"'.$dbAdminPass.'" --port="'.$port.'" '.' --socket="'.$socket.'" '.$dbName.' > '.$sqlFile; + else + $cmd = $exe.' -u"'.$dbAdminUser.'" -p"'.$dbAdminPass.'" --port="'.$port.'" '.$dbName.' > '.$sqlFile; $this->error[]['error'] = "The KnowledgeTree Setup Wizard was unable to connect to your KnowledgeTree 3.6.1 database."; $this->error[]['msg'] = "Ensure that your KnowledgeTree Mysql service is running."; $this->error[]['cmd'] = "Click Next after resolving the above errors."; @@ -269,5 +277,27 @@ class migrateDatabase extends Step $this->temp_variables['dumpLocation'] = $this->sqlDumpFile; } + /** + * Return socket of the old installation + * + * @param location + * @return string + */ + public function getSocket($location) { + if(WINDOWS_OS) { + $myIni = "my.ini"; + } else { + $myIni = "my.cnf"; + } + $dbConfigPath = $location.DS."mysql".DS."$myIni"; + + if(file_exists($dbConfigPath)) { + $this->util->iniUtilities->load($dbConfigPath); + $dbSettings = $this->util->iniUtilities->getSection('mysqladmin'); + return $dbSettings['socket']; + } + + return ''; + } } -?> \ No newline at end of file +?>