当我以非交互模式运行mysql命令行工具并只观察结果时,我会在执行每个查询时看到它们。但是,如果我把它传送到" tee&#34 ;, mysql正在缓冲结果,我只能在最后看到它。如何指示mysql立即输出结果?我已经尝试了#34; -q"没有成功,我无法在帮助页面找到正确的选项。 :(
实施例: query_dates.txt包含200个查询,每个查询大约需要30秒。
head -4 query_dates.txt | mysql -u tester -h 172.16.77.30 myDB -ss
2015-05-01 375398346
2015-05-02 375704957
2015-05-03 375992591
2015-05-04 376193384
在这种情况下,我会在30分钟内每隔30秒看到一行。
head -4 query_dates.txt | mysql -u tester -h 172.16.77.30 myDB -ss | tee 001.date_itemid.txt
2015-05-01 375398346
2015-05-02 375704957
2015-05-03 375992591
2015-05-04 376193384
在这种情况下,我必须等待2分钟,最后我得到4个结果。
P.S。:我发现this并在mysql中使用stdbuf
工作,但我仍然想知道哪个mysql选项可以解决这个问题......如果有的话。
答案 0 :(得分:1)
从手册页:
- - 无缓冲,-n
每次查询后刷新缓冲区。