Golang os / exec将mysql数据转储到文件中

时间:2016-07-10 01:59:43

标签: go

嗨,大约凌晨3点在伦敦,我正在失去这场战斗。我试图将mysql数据库转储到sql文件中。它从命令行工作正常,但是当我尝试从golang(使用RecyclerView.ItemDecoration库)执行相同操作时。我已经尝试了几乎所有我愚蠢的脑袋想出来的东西......它与echo命令工作正常,但它完全忽略了mysqldump。你能指点我正确的方向吗?

os/exec

2 个答案:

答案 0 :(得分:1)

使用此(单独的Args):

cmd := exec.Command("mysqldump", "-P3306", "-hhost", "-uuser", "-ppassword", "database_name")

我的测试示例代码:

package main

import (
    "io/ioutil"
    "log"
    "os/exec"
)

func main() {
    cmd := exec.Command("mysqldump", "-P3306", "-hhost", "-uuser", "-ppassword", "database_name")
    stdout, err := cmd.StdoutPipe()
    if err != nil {
        log.Fatal(err)
    }

    if err := cmd.Start(); err != nil {
        log.Fatal(err)
    }

    bytes, err := ioutil.ReadAll(stdout)
    if err != nil {
        log.Fatal(err)
    }
    err = ioutil.WriteFile("./out.sql", bytes, 0644)
    if err != nil {
        panic(err)
    }

}

答案 1 :(得分:0)

cmd := exec.Command("mysqldump", "-P3306", "-hhost", "-uuser", "-ppassword", "database_name" "table_name") 只需添加表名w

即可