diff --git a/pkg/backup.go b/pkg/backup.go index 6bdcb74..e6d34df 100644 --- a/pkg/backup.go +++ b/pkg/backup.go @@ -132,6 +132,10 @@ func BackupDatabase(db *dbConfig, backupFileName string, disableCompression bool } utils.Info("Starting database backup...") + err = os.Setenv("MYSQL_PWD", db.dbPassword) + if err != nil { + return + } testDatabaseConnection(db) // Backup Database database @@ -143,7 +147,6 @@ func BackupDatabase(db *dbConfig, backupFileName string, disableCompression bool "-h", db.dbHost, "-P", db.dbPort, "-u", db.dbUserName, - "--password="+db.dbPassword, db.dbName, ) output, err := cmd.Output() @@ -166,7 +169,7 @@ func BackupDatabase(db *dbConfig, backupFileName string, disableCompression bool } else { // Execute mysqldump - cmd := exec.Command("mysqldump", "-h", db.dbHost, "-P", db.dbPort, "-u", db.dbUserName, "--password="+db.dbPassword, db.dbName) + cmd := exec.Command("mysqldump", "-h", db.dbHost, "-P", db.dbPort, "-u", db.dbUserName, db.dbName) stdout, err := cmd.StdoutPipe() if err != nil { log.Fatal(err) diff --git a/pkg/helper.go b/pkg/helper.go index a161f04..b712b56 100644 --- a/pkg/helper.go +++ b/pkg/helper.go @@ -110,8 +110,7 @@ func testDatabaseConnection(db *dbConfig) { utils.Info("Connecting to %s database ...", db.dbName) - cmd := exec.Command("mysql", "-h", db.dbHost, "-P", db.dbPort, "-u", db.dbUserName, "--password="+db.dbPassword, db.dbName, "-e", "quit") - + cmd := exec.Command("mysql", "-h", db.dbHost, "-P", db.dbPort, "-u", db.dbUserName, db.dbName, "-e", "quit") // Capture the output var out bytes.Buffer cmd.Stdout = &out diff --git a/pkg/restore.go b/pkg/restore.go index ea54a92..16bd321 100644 --- a/pkg/restore.go +++ b/pkg/restore.go @@ -95,13 +95,17 @@ func RestoreDatabase(db *dbConfig, file string) { } if utils.FileExists(fmt.Sprintf("%s/%s", tmpPath, file)) { + err = os.Setenv("MYSQL_PWD", db.dbPassword) + if err != nil { + return + } testDatabaseConnection(db) utils.Info("Restoring database...") extension := filepath.Ext(fmt.Sprintf("%s/%s", tmpPath, file)) // Restore from compressed file / .sql.gz if extension == ".gz" { - str := "zcat " + fmt.Sprintf("%s/%s", tmpPath, file) + " | mysql -h " + db.dbHost + " -P " + db.dbPort + " -u " + db.dbUserName + " --password=" + db.dbPassword + " " + db.dbName + str := "zcat " + filepath.Join(tmpPath, file) + " | mysql -h " + db.dbHost + " -P " + db.dbPort + " -u " + db.dbUserName + " " + db.dbName _, err := exec.Command("bash", "-c", str).Output() if err != nil { utils.Fatal("Error, in restoring the database %v", err) @@ -113,20 +117,20 @@ func RestoreDatabase(db *dbConfig, file string) { } else if extension == ".sql" { //Restore from sql file - str := "cat " + fmt.Sprintf("%s/%s", tmpPath, file) + " | mysql -h " + db.dbHost + " -P " + db.dbPort + " -u " + db.dbUserName + " --password=" + db.dbPassword + " " + db.dbName + str := "cat " + filepath.Join(tmpPath, file) + " | mysql -h " + db.dbHost + " -P " + db.dbPort + " -u " + db.dbUserName + " " + db.dbName _, err := exec.Command("bash", "-c", str).Output() if err != nil { - utils.Fatal(fmt.Sprintf("Error in restoring the database %s", err)) + utils.Fatal("Error in restoring the database %v", err) } utils.Info("Restoring database... done") utils.Done("Database has been restored") //Delete temp deleteTemp() } else { - utils.Fatal(fmt.Sprintf("Unknown file extension %s", extension)) + utils.Fatal("Unknown file extension %s", extension) } } else { - utils.Fatal(fmt.Sprintf("File not found in %s", fmt.Sprintf("%s/%s", tmpPath, file))) + utils.Fatal("File not found in %s", filepath.Join(tmpPath, file)) } }