cmd初始化
cmd := exec.Command("mysqldump",
"--column-statistics=0",
"--default-character-set=utf8",
"-P", port,
"-h", host,
"-u", username,
fmt.Sprintf("-p'%s'", password),
dbname)
我收到错误信息
mysqldump:[警告]在命令行界面上使用密码 可能不安全。 mysqldump:得到错误:1045:用户被拒绝访问 尝试连接时使用'user'@'ipaddress'(使用密码:是)
cmd.String()输出
/ usr / bin / mysqldump --column-statistics = 0 --default-character-set = utf8 -P端口-h主机-u用户名-p'密码'dbname
当我在同一台计算机的终端中执行cmd.String()输出时,一切都按预期工作。 这种行为可能是什么原因?
答案 0 :(得分:0)
您可能有一个匿名用户''@'localhost'
或''@'127.0.0.1'
。
运行mysql> SELECT user, host FROM mysql.user;
来查看您在mySQL上拥有哪些用户。
当可能有多个匹配项时,服务器必须确定 他们使用。它可以按以下方式解决此问题:(...)
当客户端尝试连接时,服务器将浏览各行 [基于表mysql.user]的排序顺序。服务器使用第一行 与客户端主机名和用户名匹配。 (...)服务器使用 对具有最特定的主机值的行进行排序的排序规则 第一。文字主机名[例如'localhost']和IP地址为 最具体。
注意:空字符串在MySQL的身份验证算法中充当通配符