「mysql」コマンドでsudo -Sが機能しないのはなぜですか?

「mysql」コマンドでsudo -Sが機能しないのはなぜですか?

私は通常sudo mysql database < database.dumpメッセージが表示されたらパスワードを実行して入力します。

これを自動化するために実行しようとしましたが、echo 'password' | sudo -S mysql database < database.dumpパスワードを認識しませんでした。

私も成功しませんでした。

mysql_cmd="mysql database < database.dump"
echo 'password' | sudo -S $mysql_cmd

他のコマンドを正常に実行できますsudo -S。何が問題なのでしょうか?

答え1

database.dumpファイルを標準入力として読み込んでいます。sudo -S標準入力からパスワードを読み、その後に改行文字が続きます。代わりに、以下を使用することもできます。

( echo 'password'; cat database.dump ) | sudo -S mysql database

関連情報