如果我使用例如:
mysqlcheck syscp --silent --auto-repair
我仍然收到这样的通知:
syscp.panel_sessions
注意:该表的存储引擎不支持检查
这很奇怪,因为手册页中写道:
--silent, -s
静默模式。仅打印错误消息。
看来,--silent 只会抑制 OK 消息。
我怎样才能抑制注释和警告,以便我真正只得到错误?
也许用 grep 解析输出?
https://unix.stackexchange.com/questions/88694/grep-all-lines-but-one-before-the-hit
答案1
看起来这是一个已知错误,已经存在好几年了,但没有任何进展:
http://bugs.mysql.com/bug.php?id=47547
[2009 年 9 月 23 日 11:23] Shane Bester
描述:mysqlcheck 有 --silent 选项,但不够安静。它仍然会打印出警告和注释:
“-s, --silent 仅打印错误消息。”
shell>./mysqlcheck test --check --silent test.t1 注意:该表的存储引擎不支持检查 test.t2 警告:发现 auto_increment 列的值为 0 的行
如何重复:如果存在 t2、t1,则删除表;创建表 t1(a int)引擎=memory;创建表 t2(a int auto_increment primary key)引擎=myisam;插入 t2 值(1);更新 t2 设置 a=0;
mysqlcheck 测试 -uroot --check --silent
建议的修复:在静音模式下操作时不要打印出警告和注释。
[2009年9月23日 11:49] Valeriy Kravchuk
感谢您报告问题。已验证,与描述一致。
您需要找到另一种解决方法,就像您所说的使用 grep 抑制一样。输出真的那么难看吗,还是您想要一种方法来找出错误并处理它们?
答案2
我们不能。这是一个错误。它还会在静默模式下打印警告和注释。请检查这个 mysql 错误。Mysql 错误