This commit is contained in:
zyj
2025-07-17 16:55:32 +08:00
commit 32d7e9ac0d
5 changed files with 366 additions and 0 deletions

59
main.go Normal file
View File

@@ -0,0 +1,59 @@
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()
}