forked from JamesStewy/go-mysqldump
-
Notifications
You must be signed in to change notification settings - Fork 24
/
doc.go
55 lines (44 loc) · 1.53 KB
/
doc.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/*
Create MYSQL dumps in Go without the 'mysqldump' CLI as a dependancy.
Example
This example uses the mysql driver (https://github.com/go-sql-driver/mysql) to connect to a mysql instance.
package main
import (
"database/sql"
"fmt"
"github.com/jamf/go-mysqldump"
"github.com/go-sql-driver/mysql"
)
func main() {
// Open connection to database
config := mysql.NewConfig()
config.User = "your-user"
config.Passwd = "your-pw"
config.DBName = "your-db"
config.Net = "tcp"
config.Addr = "your-hostname:your-port"
dumpDir := "dumps" // you should create this directory
dumpFilenameFormat := fmt.Sprintf("%s-20060102T150405", dbname) // accepts time layout string and add .sql at the end of file
db, err := sql.Open("mysql", config.FormatDNS())
if err != nil {
fmt.Println("Error opening database: ", err)
return
}
// Register database with mysqldump
dumper, err := mysqldump.Register(db, dumpDir, dumpFilenameFormat)
if err != nil {
fmt.Println("Error registering databse:", err)
return
}
// Dump database to file
resultFilename, err := dumper.Dump()
if err != nil {
fmt.Println("Error dumping:", err)
return
}
fmt.Printf("File is saved to %s", resultFilename)
// Close dumper, connected database and file stream.
dumper.Close()
}
*/
package mysqldump