我使用 mysqldump 命令转储 sql 表中的一些信息。为此,我阅读了有关 mysqldump 的内容。然后,为了进行测试,我创建了一个可以在终端 shell 中运行的直接命令。该命令成功地产生了我需要的结果。然后我必须在我的应用程序代码中实现该命令。我的应用程序在 golang 中。使用exec.Command()我将能够运行该命令。但在执行命令时出现运行时错误。我在终端中遇到的错误是:
退出状态 2:mysqldump:出现错误:1044:选择数据库时“用户''@'localhost'对数据库'db_name'的访问被拒绝”
我使用的命令:
产生成功结果的直接命令 sudo mysqldump -h 127.0.0.1 --no-create-info db_name table_name --where='id=1121' > /path/of/file/php1_dump.sql
我在 golang 中使用的代码:
cmd := exec.Command("sh", "-c", "mysqldump -h 127.0.0.1 --no-create-info db_name table_name --where='id=1121' > /home/iron/go/php1_dump.sql")
var out bytes.Buffer
var stderr bytes.Buffer
cmd.Stdout = &out
cmd.Stderr = &stderr
err := cmd.Run() // give the above error I mentioned
if err != nil {
fmt.Println(fmt.Sprint(err) + ": " + stderr.String())
fmt.Println("errrrrrrrrrrrrrrrrrrrr", err) // exit status 2
}
fmt.Println("Result: " + out.String())
我还尝试了以下命令:
sudo mysqldump -h 127.0.0.1 -u root -p --no-create-info bk_admin wp_merchants --where='id=1121' > /home/iron/go/php1_dump.sql
上述命令要求输入密码。但我没有设置 phpmysqladmin 的任何密码:
请告诉我我哪里做错了?
大话西游666
小怪兽爱吃肉
相关分类