diff --git a/backend/utils/mysql/client/remote.go b/backend/utils/mysql/client/remote.go index 80b853fab..baf89b538 100644 --- a/backend/utils/mysql/client/remote.go +++ b/backend/utils/mysql/client/remote.go @@ -32,7 +32,7 @@ func NewRemote(db Remote) *Remote { func (r *Remote) Create(info CreateInfo) error { createSql := fmt.Sprintf("create database `%s` default character set %s collate %s", info.Name, info.Format, formatMap[info.Format]) if err := r.ExecSQL(createSql, info.Timeout); err != nil { - if strings.Contains(err.Error(), "ERROR 1007") { + if strings.Contains(strings.ToLower(err.Error()), "ERROR 1007") { return buserr.New(constant.ErrDatabaseIsExist) } return err @@ -61,6 +61,9 @@ func (r *Remote) CreateUser(info CreateInfo, withDeleteDB bool) error { for _, user := range userlist { if err := r.ExecSQL(fmt.Sprintf("create user %s identified by '%s';", user, info.Password), info.Timeout); err != nil { + if strings.Contains(strings.ToLower(err.Error()), "error 1396") { + return buserr.New(constant.ErrUserIsExist) + } if withDeleteDB { _ = r.Delete(DeleteInfo{ Name: info.Name, @@ -69,9 +72,6 @@ func (r *Remote) CreateUser(info CreateInfo, withDeleteDB bool) error { Permission: info.Permission, ForceDelete: true, Timeout: 300}) - if strings.Contains(err.Error(), "ERROR 1396") { - return buserr.New(constant.ErrUserIsExist) - } } return err } diff --git a/frontend/src/views/database/mysql/index.vue b/frontend/src/views/database/mysql/index.vue index 59c9ba097..cbcf23628 100644 --- a/frontend/src/views/database/mysql/index.vue +++ b/frontend/src/views/database/mysql/index.vue @@ -295,14 +295,18 @@ const onChangeConn = async () => { }; const goRemoteDB = async () => { - globalStore.setCurrentDB(currentDB.value.database); + if (currentDB.value) { + globalStore.setCurrentDB(currentDB.value.database); + } router.push({ name: 'MySQL-Remote' }); }; const passwordRef = ref(); const onSetting = async () => { - globalStore.setCurrentDB(currentDB.value.database); + if (currentDB.value) { + globalStore.setCurrentDB(currentDB.value.database); + } router.push({ name: 'MySQL-Setting', params: { type: currentDB.value.type, database: currentDB.value.database } }); };