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() }