mysqldump - 用户拒绝访问

时间:2012-04-24 13:37:27

标签: mysql command-line mysqldump

当我从打开的Windows命令shell(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文件(最后使用“pause”命令)时,我收到错误“获取错误:1045:用户拒绝访问”尝试连接时,“ me ”@“c-24-2-64-138.hsd1.ut.comcast.net”(使用密码:是)。

为什么它在open命令shell中运行,但从bat文件运行时却没有?我怎样才能做到这一点?

5 个答案:

答案 0 :(得分:6)

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

正确的命令是:

"mysqldump" -h *******.com -u ******* -p'*****' --databases ******* > "C:\******\_Database\backups\DB_%date:~0,3%.bak"

答案 1 :(得分:3)

我一直遇到类似的问题。我有4个数据库,所有备份都很好。无论我尝试过哪个用户 - 甚至是root用户,第五个都不会备份。事实证明密码中的^符号对我来说是个问题。一旦我更改了用户密码就包含了!而不是^一切都立即起作用。

答案 2 :(得分:1)

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

当我更改密码时,一切正常。那里的一些字符可以解决windows批处理文件的执行问题。我怀疑它是百分号,但很难知道。必须是Windows中的一个错误,因为它在命令shell中工作正常但在bat文件OR cmd文件中没有。

答案 3 :(得分:0)

您是否尝试过--user=**** --password=****

我记得有一些问题让mysqldump在脚本中获取用户名和密码,并发现此设置有效。对不起,但我担心我不记得更多关于问题是什么或是什么导致他们......

答案 4 :(得分:0)

以下为我工作,之前密码未被接受所以尝试了没有密码周围的引号...

这是我使用的 mysqldump -h localhost -u username -ppassword --databases databasename> “C:\备份\ dbbkup%日期:/ =%BAK”