【问题标题】:mysqldump - Access denied for usermysqldump - 拒绝用户访问
【发布时间】:2012-04-24 13:37:27
【问题描述】:

当我从打开的 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:用户访问被拒绝'me'@'c-24-2-64-138.hsd1.ut.comcast.net'(使用密码:YES)尝试连接时”。

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

【问题讨论】:

    标签: mysql command-line mysqldump


    【解决方案1】:

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

    正确的命令是:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 正如其他人指出的那样,将密码用引号括起来对我来说是诀窍(我将密码保存在 my.cnf 文件中)。
      【解决方案3】:

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

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

      【讨论】:

      • 这里没有“错误”。一些字符在批处理文件中具有特殊含义(就像任何其他编程/脚本语言一样)以实现各种可编程性。
      • 当在 BASH 脚本中指定时,使用参数替换,参数应该用单引号括起来,以防止对包含符号和字母组合的字符串进行额外评估($ 是一个问题在这里)。
      【解决方案4】:

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

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

      【讨论】:

      • amaidment:我尝试了您的建议,但仍然遇到同样的错误。还有其他想法吗?
      • @SweatCoder - 抱歉,我的错字 - 相应修改。很高兴你成功了。
      • 我没有让它工作。我只知道 == 不起作用。仍在寻找解决方案。
      • @SweatCoder - 你试过单 '=' 吗?我使用这种格式,所以知道它有效(在我的盒子上)。
      【解决方案5】:

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

      这是我用过的 mysqldump -h localhost -u 用户名 -ppassword --databases 数据库名 > "C:\backups\dbbkup.%DATE:/=%.bak"

      【讨论】:

        猜你喜欢
        • 2011-08-11
        • 2014-07-07
        • 1970-01-01
        • 1970-01-01
        • 2012-05-19
        • 2018-11-28
        • 2016-04-25
        • 2015-02-22
        • 1970-01-01
        相关资源
        最近更新 更多