如何解决mysqldump选择数据库时出现错误:

我使用 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 的任何密码:

http://img.mukewang.com/649960530001444d09470464.jpg

请告诉我我哪里做错了?



慕莱坞森
浏览 103回答 2
2回答

大话西游666

我也遇到过同样的问题。我认为您必须使用PHPMyAdmin -> users_account有效的username和来创建一个新用户password。另外,检查所有权限。希望它能帮助你。

小怪兽爱吃肉

它提示您指定密码,因为您要求这样做。首先跳过命令中的-p 。使用--跳过密码明确指定没有密码并且 mysqldump 不应提示输入密码。
打开App,查看更多内容
随时随地看视频慕课网APP