mysqldump访问被拒绝

chn*_*net 29 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

小智 32

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

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

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

它应该工作正常.

  • 这样可以保存我的头发! (3认同)

Spy*_*ros 19

我认为在使用-p或使用--password时你必须丢失=:

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

连接服务器时使用的密码.如果使用短选项表单(-p),则选项和密码之间不能有空格.如果在命令行上省略--password或-p选项后面的密码值,则会提示您输入密码值.在命令行上指定密码应该被认为是不安全的.请参见第6.6节"保持密码安全".


Ala*_*nD. 12

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

  • 谢谢,这也解决了我的问题。以 `-p'P@$$W0RD'` 结尾 (2认同)

Tim*_*Tim 8

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


HAR*_*HAK 6

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

C:\backup

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

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

它对我有用:)


Aak*_*tel 5

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