Browse Source

fix: 解决 MySQL 8.x 切换数据库访问权限导致创建数据库失败的问题 (#2283)

pull/2287/head
ssongliu 1 year ago committed by GitHub
parent
commit
bf32424458
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      backend/utils/mysql/client/local.go
  2. 6
      backend/utils/mysql/client/remote.go

6
backend/utils/mysql/client/local.go

@ -72,12 +72,14 @@ func (r *Local) CreateUser(info CreateInfo, withDeleteDB bool) error {
Timeout: 300}) Timeout: 300})
return err return err
} }
grantStr := fmt.Sprintf("grant all privileges on `%s`.* to %s with grant option;", info.Name, user) grantStr := fmt.Sprintf("grant all privileges on `%s`.* to %s", info.Name, user)
if info.Name == "*" { if info.Name == "*" {
grantStr = fmt.Sprintf("grant all privileges on *.* to %s with grant option;", user) grantStr = fmt.Sprintf("grant all privileges on *.* to %s", user)
} }
if strings.HasPrefix(info.Version, "5.7") || strings.HasPrefix(info.Version, "5.6") { if strings.HasPrefix(info.Version, "5.7") || strings.HasPrefix(info.Version, "5.6") {
grantStr = fmt.Sprintf("%s identified by '%s' with grant option;", grantStr, info.Password) grantStr = fmt.Sprintf("%s identified by '%s' with grant option;", grantStr, info.Password)
} else {
grantStr = grantStr + " with grant option;"
} }
if err := r.ExecSQL(grantStr, info.Timeout); err != nil { if err := r.ExecSQL(grantStr, info.Timeout); err != nil {
_ = r.Delete(DeleteInfo{ _ = r.Delete(DeleteInfo{

6
backend/utils/mysql/client/remote.go

@ -75,12 +75,14 @@ func (r *Remote) CreateUser(info CreateInfo, withDeleteDB bool) error {
} }
return err return err
} }
grantStr := fmt.Sprintf("grant all privileges on `%s`.* to %s with grant option;", info.Name, user) grantStr := fmt.Sprintf("grant all privileges on `%s`.* to %s", info.Name, user)
if info.Name == "*" { if info.Name == "*" {
grantStr = fmt.Sprintf("grant all privileges on *.* to %s with grant option;", user) grantStr = fmt.Sprintf("grant all privileges on *.* to %s", user)
} }
if strings.HasPrefix(info.Version, "5.7") || strings.HasPrefix(info.Version, "5.6") { if strings.HasPrefix(info.Version, "5.7") || strings.HasPrefix(info.Version, "5.6") {
grantStr = fmt.Sprintf("%s identified by '%s' with grant option;", grantStr, info.Password) grantStr = fmt.Sprintf("%s identified by '%s' with grant option;", grantStr, info.Password)
} else {
grantStr = grantStr + " with grant option;"
} }
if err := r.ExecSQL(grantStr, info.Timeout); err != nil { if err := r.ExecSQL(grantStr, info.Timeout); err != nil {
if withDeleteDB { if withDeleteDB {

Loading…
Cancel
Save