1

我对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

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

有人可以解释为什么它显示错误吗?我很好奇。

谢谢

4

1 回答 1

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
于 2012-12-06T22:49:13.907 回答