【发布时间】:2019-11-11 22:01:13
【问题描述】:
我使用 mysqldump 命令从 sql 表中转储一些信息。为此,我阅读了有关 mysqldump 的信息。然后为了测试,我做了一个直接命令,可以在终端 shell 中运行。该命令成功地产生了我需要的结果。然后,我必须在我的应用程序代码中实现该命令。我的应用程序在 golang 中。使用exec.Command() 我将能够运行该命令。但是在执行命令时会出现运行时错误。我在终端面临的错误是:
退出状态2:mysqldump:收到错误:1044:在选择数据库时,“将用户”“@'localhost”拒绝访问“@'localhost”“
我使用的命令:
产生成功结果的直接命令
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的密码:
请告诉我我哪里做错了?
【问题讨论】:
-
会有密码的。您是否有成功使用此数据库的应用程序?您可能会在该应用程序的配置中找到密码,但可能不是 root 密码。最坏的情况你可以停止 mysql 并重新启动它
--skip-grant-tables然后将密码更改为你知道的密码。 -
@rup 但我没有在 mysql 上设置任何密码。那么我必须更改什么密码
-
@rup 我已签入用户帐户,请参见给定的屏幕截图:nimb.ws/suN974 用户帐户中没有密码
-
对不起,我不知道我的 mysql 在没有设置密码的情况下表现如何。我已将您的屏幕截图放在问题中,因此希望其他人能够识别这里发生的事情。
标签: mysql go phpmyadmin