feat: 实现远程数据库改密、授权功能

This commit is contained in:
ssongliu
2023-07-21 18:28:45 +08:00
committed by ssongliu
parent cb7351a9fb
commit 7f79f5f031
14 changed files with 94 additions and 28 deletions

View File

@@ -2,7 +2,6 @@ package mysql
import (
"database/sql"
"errors"
"fmt"
"github.com/1Panel-dev/1Panel/backend/buserr"
@@ -22,23 +21,21 @@ type MysqlClient interface {
}
func NewMysqlClient(conn client.DBInfo) (MysqlClient, error) {
if conn.From == "remote" {
connArgs := fmt.Sprintf("%s:%s@tcp(%s:%d)/?charset=utf8", conn.Username, conn.Password, conn.Address, conn.Port)
db, err := sql.Open("mysql", connArgs)
if err != nil {
return nil, err
}
if err := db.Ping(); err != nil {
return nil, err
}
return client.NewRemote(db), nil
}
if conn.From == "local" {
if cmd.CheckIllegal(conn.Address, conn.Username, conn.Password) {
return nil, buserr.New(constant.ErrCmdIllegal)
}
connArgs := []string{"exec", conn.Address, "mysql", "-u" + conn.Username, "-p" + conn.Password + "-e"}
connArgs := []string{"exec", conn.Address, "mysql", "-u" + conn.Username, "-p" + conn.Password, "-e"}
return client.NewLocal(connArgs, conn.Address), nil
}
return nil, errors.New("no such type")
connArgs := fmt.Sprintf("%s:%s@tcp(%s:%d)/?charset=utf8", conn.Username, conn.Password, conn.Address, conn.Port)
db, err := sql.Open("mysql", connArgs)
if err != nil {
return nil, err
}
if err := db.Ping(); err != nil {
return nil, err
}
return client.NewRemote(db), nil
}