Ответ 1
Попробуйте следующее: mysql -uuser -ppass -h remote.host.tld database < script.sql 2> blah.csv
Это перенаправит stderr
Я хочу сделать следующее mysql -uuser -ppass -h remote.host.tld database < script.sql
где script.sql
содержит следующее
SELECT *
FROM webrecord_wr25mfz_20101011_175524
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
Я хочу, чтобы CSV-выход был направлен на стандартную версию. Причина в том, что запуск этого запроса с помощью INTO OUTFILE 'blah.csv'
будет сохранять файл на удаленном хосте. Я хочу, чтобы файл был сохранен на локальном хосте.
Если бы я мог просто перенаправить стандартный вывод в файл, это было бы денди.
Попробуйте следующее: mysql -uuser -ppass -h remote.host.tld database < script.sql 2> blah.csv
Это перенаправит stderr
Частично повторяющийся вопрос к MySQL SELECT INTO OUTFILE на другом сервере. FIELDS TERMINATED BY
не могут быть использованы без into outfile
Альтернатива (не такая элегантная) - использовать --batch
для получения вывода с разделением табуляцией и вывода стандартного вывода. Что-то вроде этого:
mysql --batch -uuser -ppass -h remote.host.tld database < stack.sql | sed 's/\t/,/g' > blah.csv
Имейте в --batch
что --batch
экранирует специальные символы, поэтому в зависимости от --batch
у вас данных и их предсказуемости может потребоваться изменить sed