代码拉取完成,页面将自动刷新
package dbs
import (
"net/url"
"strings"
)
// Data Source Name
type DSN struct {
Host, Port, User, Password, DB string
}
func ParseDSN(urlStr string) DSN {
u, err := url.Parse(urlStr)
if err != nil {
panic("invalid data source: " + urlStr)
}
parts := strings.Split(u.Path, `/`)
if len(parts) != 2 {
panic("invalid db in data source: " + urlStr)
}
password, _ := u.User.Password()
dsn := DSN{
Host: u.Hostname(),
Port: u.Port(),
User: u.User.Username(),
Password: password,
DB: strings.Split(u.Path, `/`)[1],
}
return dsn
}
func (dsn DSN) MysqlFlags() []string {
return []string{`-h` + dsn.Host, `-P` + dsn.Port, `-u` + dsn.User, `-p` + dsn.Password, dsn.DB}
}
func (dsn DSN) RedisFlags() []string {
flags := []string{`-h`, dsn.Host, `-p`, dsn.Port, `-n`, dsn.DB}
if dsn.User != `` {
flags = append(flags, `--user`, dsn.User)
}
if dsn.Password != `` {
flags = append(flags, `-a`, dsn.Password)
}
return flags
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。