使用MySQL源命令执行SQL文件时禁用控制台输出


8

我首先启动MySQL命令行工具:

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

最后一个-b选项用于禁用错误提示音。

然后我选择一个数据库:

use Mydatabasename;

然后我执行SQL形式的文件,如下所示:

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

那是事情进展缓慢的时候。我之前已经执行了文件的一部分,因此控制台中充满了重复的行错误,从而严重降低了执行速度。我每秒执行5-10条语句。没有重复的行,代码每5秒执行数万条语句(30k +)。

我需要执行此操作,因为文件很大,并且无法一次执行。

Answers:


10

这是问题所在。操作系统有两种打印方式

  • 标准输出
  • 标准差

--silent 只影响标准输出。你如何钉stderr?

请尝试以下方法之一,然后查看是否可行:

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

试试看 !!!

CAVEAT:在回答有关mysqldump的问题之前,我已经处理过此问题:如何记录mysqldump的详细输出?


“ 2> nul”是否意味着将第二个输出流(stderr)重定向为空?我刚刚执行了我的大脚本,但我认为它仍在进行重复操作(仅使用2> nul而不使用silent)。我想我需要分割源文件...非常感谢。
Mzn 2012年

1
是的,输出NUL绝对不会写入任何内容。2>stderr.txt如果需要,您可以做。
RolandoMySQLDBA
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.