Если вы выполняете MySQL запросы в командной строке.Здесь я предполагаю, что у вас есть список запросов в текстовом файле, и вы хотите вывод в другом текстовом файле.Тогда вы можете использовать это.[test_2 - это имя базы данных]
COMMAND 1
mysql -vv -u root -p test_2 < query.txt > /root/results.txt 2>&1
Где -vv - для подробного вывода.
Если вы используете приведенный выше оператор как
КОМАНДА 2
mysql -vv -u root -p test_2 < query.txt 2>&1 > /root/results.txt
Он перенаправит STDERR в обычное местоположение (т.е. на терминал) и STDOUT в выходной файл, который в моем случае будет results.txt
Первая команда выполняетсяquery.txt до тех пор, пока не обнаружит ошибку и не остановится там.
Вот как работает перенаправление.Вы можете попробовать
#ls key.pem asdf > /tmp/output_1 2>&1 /tmp/output_2
Здесь файл key.pm существует, а asdf не существует.Поэтому, когда вы просматриваете файлы, вы получаете следующее
# cat /tmp/output_1
key.pem
#cat /tmp/output_2
ls: cannot access asdf: No such file or directory
Но если вы измените предыдущее выражение с помощью этого
ls key.pem asdf > /tmp/output_1 > /tmp/output_2 2>&1
, то вы получите и ошибку, и вывод в output_2
cat /tmp/output_2
ls: cannot access asdf: No such file or directory
key.pem