@@ -6,47 +6,48 @@ Create MYSQL dumps in Go without the `mysqldump` CLI as a dependancy.
6
6
package main
7
7
8
8
import (
9
- " database/sql"
10
- " fmt"
9
+ " database/sql"
10
+ " fmt"
11
11
12
- " github.com/JamesStewy/go-mysqldump"
13
- _ " github.com/go-sql-driver/mysql"
12
+ " github.com/JamesStewy/go-mysqldump"
13
+ _ " github.com/go-sql-driver/mysql"
14
14
)
15
15
16
16
func main () {
17
- // Open connection to database
18
- username := " your-user"
19
- password := " your-pw"
20
- hostname := " your-hostname"
21
- port := " your-port"
22
- dbname := " your-db"
17
+ // Open connection to database
18
+ config := mysql.NewConfig ()
19
+ config.User = " your-user"
20
+ config.Passwd = " your-pw"
21
+ config.DBName = " your-db"
22
+ config.Net = " tcp"
23
+ config.Addr = " your-hostname:your-port"
23
24
24
25
dumpDir := " dumps" // you should create this directory
25
26
dumpFilenameFormat := fmt.Sprintf (" %s -20060102T150405" , dbname) // accepts time layout string and add .sql at the end of file
26
27
27
- db , err := sql.Open (" mysql" , fmt. Sprintf ( " %s : %s @tcp( %s : %s )/ %s " , username, password, hostname, port, dbname ))
28
- if err != nil {
29
- fmt.Println (" Error opening database: " , err)
30
- return
31
- }
32
-
33
- // Register database with mysqldump
34
- dumper , err := mysqldump.Register (db, dumpDir, dumpFilenameFormat)
35
- if err != nil {
36
- fmt.Println (" Error registering databse:" , err)
37
- return
38
- }
39
-
40
- // Dump database to file
41
- resultFilename , err := dumper.Dump ()
42
- if err != nil {
43
- fmt.Println (" Error dumping:" , err)
44
- return
45
- }
46
- fmt.Printf (" File is saved to %s " , resultFilename)
47
-
48
- // Close dumper and connected database
49
- dumper.Close ()
28
+ db , err := sql.Open (" mysql" , config. FormatDNS ( ))
29
+ if err != nil {
30
+ fmt.Println (" Error opening database: " , err)
31
+ return
32
+ }
33
+
34
+ // Register database with mysqldump
35
+ dumper , err := mysqldump.Register (db, dumpDir, dumpFilenameFormat)
36
+ if err != nil {
37
+ fmt.Println (" Error registering databse:" , err)
38
+ return
39
+ }
40
+
41
+ // Dump database to file
42
+ resultFilename , err := dumper.Dump ()
43
+ if err != nil {
44
+ fmt.Println (" Error dumping:" , err)
45
+ return
46
+ }
47
+ fmt.Printf (" File is saved to %s " , resultFilename)
48
+
49
+ // Close dumper and connected database
50
+ dumper.Close ()
50
51
}
51
52
52
53
```
0 commit comments