我对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
单独执行此操作(在命令后没有>)工作。 我使用管道字符而不是>解决了这个问题。 (超过)。
有人可以解释为什么它表现出错误吗?我很好奇。
谢谢
答案 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