21 Star 48 Fork 14

siddontang / go-mysql

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
main.go 1.62 KB
一键复制 编辑 原始数据 按行查看 历史
siddontang 提交于 2015-05-05 08:53 . format with goimports
package main
import (
"flag"
"fmt"
"os"
"strings"
"github.com/siddontang/go-mysql/dump"
)
var addr = flag.String("addr", "127.0.0.1:3306", "MySQL addr")
var user = flag.String("user", "root", "MySQL user")
var password = flag.String("password", "", "MySQL password")
var execution = flag.String("exec", "mysqldump", "mysqldump execution path")
var output = flag.String("o", "", "dump output, empty for stdout")
var dbs = flag.String("dbs", "", "dump databases, seperated by comma")
var tables = flag.String("tables", "", "dump tables, seperated by comma, will overwrite dbs")
var tableDB = flag.String("table_db", "", "database for dump tables")
var ignoreTables = flag.String("ignore_tables", "", "ignore tables, must be database.table format, seperated by comma")
func main() {
flag.Parse()
d, err := dump.NewDumper(*execution, *addr, *user, *password)
if err != nil {
fmt.Printf("Create Dumper error %v\n", err)
return
}
if len(*ignoreTables) == 0 {
subs := strings.Split(*ignoreTables, ",")
for _, sub := range subs {
if seps := strings.Split(sub, "."); len(seps) == 2 {
d.AddIgnoreTables(seps[0], seps[1])
}
}
}
if len(*tables) > 0 && len(*tableDB) > 0 {
subs := strings.Split(*tables, ",")
d.AddTables(*tableDB, subs...)
} else if len(*dbs) > 0 {
subs := strings.Split(*dbs, ",")
d.AddDatabases(subs...)
}
var f = os.Stdout
if len(*output) > 0 {
f, err = os.OpenFile(*output, os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
fmt.Printf("Open file error %v\n", err)
return
}
}
defer f.Close()
if err = d.Dump(f); err != nil {
fmt.Printf("Dump MySQL error %v\n", err)
return
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/siddontang/go-mysql.git
git@gitee.com:siddontang/go-mysql.git
siddontang
go-mysql
go-mysql
04766b6d37d1

搜索帮助