Почему sudo -S не работает для команды «mysql»?

Обычно я запускаю sudo mysql database < database.dump и введите пароль в приглашении.

Чтобы автоматизировать это, я попытался выполнить echo 'password' | sudo -S mysql database < database.dump echo 'password' | sudo -S mysql database < database.dump но он не распознает мой пароль.

Я также безуспешно пытался:

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

Я могу нормально использовать другие команды. Что может быть проблемой?

Файл database.dump читается на стандартном входе. sudo -S считывает пароль, за которым следует новая строка, со стандартного ввода. Вы можете использовать это вместо этого:

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