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 に答える