Если это в скрипте bash, измените первую строку на
#!/bin/bash -x
Это выполнит скрипт в режиме отладки и позволит вам увидеть раскрытие всех переменных.
Перенаправление ввода '<' не должно быть в кавычках, равно как и входной источник. Даже без кавычек я не думаю, что источник ввода расширится до того, что вы хотите. </p>
Попробуйте создать исходную строку ввода перед ее использованием в команде mysql.
declare input=${i// /\\ }
Использовать eval
eval mysql --host=${host} --user=${user} --password=${password} ${database} < ${input}
eval развернет все переменные перед попыткой выполнения команды.