嗨,我正在尝试执行脚本以使用Golang将数据填充到数据库中
func executeTestScript(){
cmd := exec.Command("/usr/local/mysql/bin/mysql", "-h127.0.0.1", "-P3333", "-uusr", "-pPassxxx", "-Ddtb_test", "< /Users/XXX/Documents/test/scripts/olds/SCRIPT_XXX.sql")
var out, stderr bytes.Buffer
cmd.Stdout = &out
cmd.Stderr = &stderr
err := cmd.Run()
if err != nil {
fmt.Println(fmt.Sprintf("Error executing query. Command Output: %+v\n: %+v, %v", out.String(), stderr.String(), err))
log.Fatalf("Error executing query. Command Output: %+v\n: %+v, %v", out.String(), stderr.String(), err)
}
}
问题是我遇到了错误:
ERROR 1049 (42000): Unknown database '< /Users/XXX/Documents/test/scripts/olds/SCRIPT_XXX.sql'
我认为问题是执行人员认为是dbname的最后一个参数(sql脚本路径)
终端中的以下命令正在运行:
/usr/local/mysql/bin/mysql --host=127.0.0.1 --port=3333 --user=usr --password=Passxxx --database=dtb_test < /Users/XXX/Documents/roseula/scripts/olds/SCRIPT_XXX.sql
但我尝试在Go中复制以自动执行脚本。
该脚本具有删除表,创建表,插入和具有FK关系的PK,这是一个非常完整的脚本,因此我无法逐行执行,因此我决定执行de mysql程序以将数据插入数据库中。
有什么建议?