diff --git a/backend/app/service/database_mysql.go b/backend/app/service/database_mysql.go index e3ae5fae2..70a5901ce 100644 --- a/backend/app/service/database_mysql.go +++ b/backend/app/service/database_mysql.go @@ -194,7 +194,7 @@ func (u *MysqlService) ChangePassword(info dto.ChangeDBInfo) error { } passwordChangeCMD := fmt.Sprintf("set password for '%s'@'%s' = password('%s')", mysql.Username, mysql.Permission, info.Value) - if !strings.HasPrefix(app.Version, "5.7") { + if !strings.HasPrefix(app.Version, "5.7") && !strings.HasPrefix(app.Version, "5.6") { passwordChangeCMD = fmt.Sprintf("ALTER USER '%s'@'%s' IDENTIFIED WITH mysql_native_password BY '%s';", mysql.Username, mysql.Permission, info.Value) } if info.ID != 0 { @@ -229,7 +229,7 @@ func (u *MysqlService) ChangePassword(info dto.ChangeDBInfo) error { for _, host := range hosts { if host == "%" || host == "localhost" { passwordRootChangeCMD := fmt.Sprintf("set password for 'root'@'%s' = password('%s')", host, info.Value) - if !strings.HasPrefix(app.Version, "5.7") { + if !strings.HasPrefix(app.Version, "5.7") && !strings.HasPrefix(app.Version, "5.6") { passwordRootChangeCMD = fmt.Sprintf("alter user 'root'@'%s' identified with mysql_native_password BY '%s';", host, info.Value) } if err := excuteSql(app.ContainerName, app.Password, passwordRootChangeCMD); err != nil { @@ -280,8 +280,14 @@ func (u *MysqlService) ChangeAccess(info dto.ChangeDBInfo) error { } for _, user := range userlist { if len(user) != 0 { - if err := excuteSql(app.ContainerName, app.Password, fmt.Sprintf("drop user if exists '%s'@'%s'", mysql.Username, user)); err != nil { - return err + if strings.HasPrefix(app.Version, "5.6") { + if err := excuteSql(app.ContainerName, app.Password, fmt.Sprintf("drop user '%s'@'%s'", mysql.Username, user)); err != nil { + return err + } + } else { + if err := excuteSql(app.ContainerName, app.Password, fmt.Sprintf("drop user if exists '%s'@'%s'", mysql.Username, user)); err != nil { + return err + } } } } @@ -346,7 +352,7 @@ func (u *MysqlService) UpdateVariables(updates []dto.MysqlVariablesUpdate) error group := "[mysqld]" for _, info := range updates { - if !strings.HasPrefix(app.Version, "5.7") { + if !strings.HasPrefix(app.Version, "5.7") && !strings.HasPrefix(app.Version, "5.6") { if info.Param == "query_cache_size" { continue } @@ -495,7 +501,7 @@ func (u *MysqlService) createUser(container, password, version string, req dto.M if req.Name == "*" { grantStr = fmt.Sprintf("grant all privileges on *.* to %s", user) } - if strings.HasPrefix(version, "5.7") { + if strings.HasPrefix(version, "5.7") || strings.HasPrefix(version, "5.6") { grantStr = fmt.Sprintf("%s identified by '%s' with grant option;", grantStr, req.Password) } if err := excSQL(container, password, grantStr); err != nil {