mysqldump访问被拒绝

时间:2011-04-23 21:21:40

标签: mysqldump

当我尝试使用ssh中的mysqldump进行备份时, 我在机器10.64.1.1上运行以下命令。它给出了以下错误。

mysqldump --user=test -p=password --host=10.64.1.2 --tab=. databasename tablename

尝试连接时

mysqldump: Got error: 1045: Access denied for user 'test'@'10.64.1.1' (using password: YES)

但是,我可以使用相同的用户和密码访问mysql。

mysql --user=test -p[password]

当前用户:test@10.64.1.1

SSL:Not in use

当前寻呼机:stdout

使用outfile:''

使用分隔符:;

服务器版本:5.0.91-50-log Percona SQL Server, Revision 73 (GPL)

协议版本:10

连接:10.64.1.2 via TCP/IP

更新

如果我执行以下mysql文档:--password[=password]-p[password]

由于我的密码包含特殊符号@,因此Mysql无法正确检测用户。它抱怨道:

mysqldump: Got error: 1044: Access denied for user 'test'@'%' to database

9 个答案:

答案 0 :(得分:30)

您必须以管理员身份运行CMD.EXE:

右键单击cmd.exe - >以管理员身份运行,然后键入命令:

mysqldump -u [username] -p [password] -h [ip或name] yourdatabasename> C:\ sqlfile.sql

它应该可以正常工作。

答案 1 :(得分:18)

我认为在使用-p或使用--password:

时必须丢失=
  

- 密码[=密码], - p [密码]

     

连接时使用的密码   服务器。如果你使用短   选项表格(-p),你不能拥有   期权与期权之间的空间   密码。如果省略密码   --password或-p之后的值   你是命令行上的选项   提示一个。指定一个   命令行上的密码应该是   被认为是不安全的。见6.6节,   “保证密码安全”。

答案 2 :(得分:11)

我知道这个话题很老,但我碰巧遇到了同样的问题。我发现问题只是密码中使用的特殊字符。事实上,他们必须使用反斜杠进行转义:--password=123\@456或使用单引号--password='123@456'

答案 3 :(得分:8)

我通过Plesk创建的数据库用户遇到了同样的问题。用户具有单个数据库的权限。如果我指定数据库名称,我会得到上面提到的错误。如果我为所有数据库指定-A,则转储工作。

答案 4 :(得分:5)

在Windows中,我通过创建目录然后将* .sql文件转储到备份目录中来解决它。

C:\backup

命令没有问题:
 删除[]方括号

mysqldump -u[username] -p[password] -h[ip] yourdb > C:\backup\sqlfile.sql

它对我有用:)

答案 5 :(得分:4)

另一个可能的原因可能是您尝试创建转储的位置。 写mysqldump -u[username] -p yourdb > D:\backup\sqlfile.sql代替mysqldump -u[username] -p yourdb > sqlfile.sql解决了我的问题。

答案 6 :(得分:1)

连接选项没有=(等号)。你想要以下。

mysqldump -u test -ppassword -h 10.64.1.2 ...

有关其他选项的详细信息,请查看the docs

答案 7 :(得分:0)

对我来说有什么用 - 运行cmd行作为管理员。 在-p之后不要输入任何密码,系统会自动提示您输入密码并且它可以正常工作。

答案 8 :(得分:0)

尝试使用此命令

mysqldump --user=root -p --host=127.0.0.1 --databases database_name [database_name_2,...] > dump.sql