" mysqldump> MySQL的"抛出错误。为什么?

时间:2012-12-06 22:32:42

标签: shell redirect

我对linux有点新手,还在学习。

今天我需要将数据库复制到生产环境中。为此,我使用了命令

(uiserver):u70486952:~ > mysqldump -h host -u user --password=mypassword dbname > mysql -h host2 -u user2 --password=mypassword dbname2

这个命令,虽然对我来说没问题但是没有用,它引发了一个错误。

mysqldump: Got error: 1044: Access denied for user 'user'@'%' to database 'dbname' when selecting the database

单独执行此操作(在命令后没有>)工作。 我使用管道字符而不是>解决了这个问题。 (超过)。

有人可以解释为什么它表现出错误吗?我很好奇。

谢谢

1 个答案:

答案 0 :(得分:3)

重定向可以在命令的任何地方执行,只有下一个单词用作文件名;命令行上的任何其他内容都作为参数传递给命令。也就是说,

mysqldump -h host -u user --password=mypassword dbname > mysql -h host2 -u user2 --password=mypassword dbname2

相当于

mysqldump -h host -u user --password=mypassword dbname -h host2 -u user2 --password=mypassword dbname2 > mysql