60 lines
1.1 KiB
Go
60 lines
1.1 KiB
Go
package main
|
||
|
||
import (
|
||
"database/sql"
|
||
"flag"
|
||
"fmt"
|
||
"log"
|
||
"mysql-operate/service"
|
||
"strconv"
|
||
|
||
_ "github.com/go-sql-driver/mysql"
|
||
)
|
||
|
||
var (
|
||
start = flag.Bool("start", false, "运行")
|
||
tabName = flag.String("tabName", "", "表名")
|
||
sqlFile = flag.String("sqlFile", "", "导出的sql文件名称,默认为数据库名称")
|
||
)
|
||
|
||
func main() {
|
||
flag.Parse()
|
||
if !*start {
|
||
log.Println(*start)
|
||
return
|
||
}
|
||
appConfig, _ := service.LoadConfig()
|
||
|
||
var sqlFileName string = appConfig.Database.Database
|
||
if *tabName != "" {
|
||
sqlFileName = *tabName
|
||
}
|
||
if *sqlFile != "" {
|
||
sqlFileName = *sqlFile
|
||
}
|
||
|
||
// 获取数据库配置
|
||
|
||
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4",
|
||
appConfig.Database.Username,
|
||
appConfig.Database.Password,
|
||
appConfig.Database.Host,
|
||
strconv.Itoa(appConfig.Database.Port),
|
||
appConfig.Database.Database,
|
||
)
|
||
// 连接数据库
|
||
db, err := sql.Open("mysql", dsn)
|
||
if err != nil {
|
||
panic(fmt.Sprintf("连接失败: %v", err))
|
||
}
|
||
defer db.Close()
|
||
var msqldump service.Msqldump
|
||
dumo := msqldump.New(db, "./", sqlFileName)
|
||
if *tabName != "" {
|
||
dumo.Tablelist = []string{*tabName}
|
||
}
|
||
|
||
dumo.Run()
|
||
|
||
}
|