Отключить вывод консоли при выполнении файла SQL с помощью исходной команды MySQL

8

Я начинаю с запуска инструмента командной строки MySQL:

mysql --user=myusername --password=mypassword --silent --force -b

Последняя -bопция используется для отключения звукового сигнала при ошибке.

Затем я выбираю базу данных:

use Mydatabasename;

Затем я выполняю SQL-файл в следующем виде:

source c:\x\y\z\myfile.sql

Вот когда дела идут медленно. Я выполнил часть файла раньше, поэтому консоль заполнена ошибками дублирующихся строк, которые сильно замедляют выполнение. Я получаю 5-10 заявлений в секунду. Без повторяющихся строк код выполняет десятки тысяч операторов (30k +) каждые 5 секунд.

Мне нужно сделать это, так как файл большой, и я не могу выполнить его за один раз.

магнитный азимут
источник

Ответы:

10

Здесь проблема. В ОС есть два режима печати вещей

  • стандартный вывод
  • STDERR

--silent Влияет только на стандартный вывод. Как вы гвоздь stderr?

Попробуйте выполнить одно из следующих действий и посмотрите, работает ли оно:

mysql --user=myusername --password=mypassword --silent --force -b 2> nul
mysql --user=myusername --password=mypassword --silent --force -b --tee=nul

Попробуйте!

ПРЕДУПРЕЖДЕНИЕ: Я имел дело с чем-то подобным, когда отвечал на вопрос о mysqldump: как записать подробный вывод из mysqldump?

RolandoMySQLDBA
источник
Означает ли "2> nul" перенаправить второй поток вывода (stderr) в ничто? Я только что выполнил свой большой сценарий, и я думаю, что он все еще проходит через дубликаты (не использовал тихий только 2> нуль). Я думаю, что мне нужно разделить исходный файл ... Большое спасибо.
Mzn
1
Да, на выходе NULничего не пишет. Вы можете сделать, 2>stderr.txtесли хотите.
RolandoMySQLDBA