3

当我从打开的 Windows 命令外壳 (Win7) 运行以下命令时,它工作正常,并且备份被写入我的文件系统。MySQL 数据库位于远程 linux 服务器上。

"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqldump" -h *******.com -u ******* -p***** --databases ******* > "C:\******\_Database\backups\DB_%date:~0,3%.bak"

但是,当我将相同的命令放入批处理文件(whatever.bat)并运行 bat 文件(最后带有“暂停”命令)时,我收到错误“得到错误:1045:用户''的访问被拒绝@'c-24-2-64-138.hsd1.ut.comcast.net'(使用密码:YES)尝试连接时“。

为什么它可以在打开的命令 shell 中工作,但不能在 bat 文件中运行?我怎样才能使这项工作?

4

5 回答 5

6

您应该使用单引号转义密码:-p'password'.

正确的命令是:

"mysqldump" -h *******.com -u ******* -p'*****' --databases ******* > "C:\******\_Database\backups\DB_%date:~0,3%.bak"
于 2013-07-04T08:54:02.803 回答
3

我一直遇到类似的问题。我有 4 个数据库都可以正常备份。无论我尝试使用哪个用户 - 甚至是 root,第 5 个都不会备份。原来密码中的 ^ 符号对我来说是个问题。一旦我将用户密码更改为包括!而不是 ^ 一切都立即生效。

于 2012-11-22T11:02:45.943 回答
1

好吧,我想出了这个令人恼火的事情。问题是我的密码本身:4$5%6^^7^&deZeYPdx5014VB3C#

当我更改该密码时,一切正常。那里的某些字符会提升 Windows 批处理文件的执行。我怀疑这是 % 符号,但很难知道。必须是 Windows 中的错误,因为它可以在命令 shell 中正常工作,但不能在 bat 文件或 cmd 文件中正常工作。

于 2012-09-01T04:38:47.180 回答
0

你试过--user=**** --password=****吗?

我记得在让 mysqldump 获取脚本中的用户名和密码时遇到了一些问题,并发现此设置有效。抱歉,但恐怕我不记得更多关于问题是什么或导致它们的原因了......

于 2012-04-24T14:31:57.723 回答
0

以下对我有用,以前密码不被接受,所以在密码周围没有引号的情况下尝试了它......

这是我使用的 mysqldump -h localhost -u username -ppassword --databases databasename > "C:\backups\dbbkup.%DATE:/=%.bak"

于 2015-05-08T11:49:13.847 回答