取消显示特定MySQL警告消息


Suppress specific MySQL warning message

我们收到一条Headers and client library minor version mismatch消息,我们有一条解决实际警告的路径,但目前我们需要抑制它。

但是!我们需要保留所有其他警告。

那么,有没有一种方法可以抑制这个单一的错误消息?

您可以使用set_error_handler并检查特定消息,然后在需要使用默认错误处理的情况下返回false

E.G

set_error_handler(function ($errno, $errstr, $errfile, $errline) {
    if (false === strpos($errstr, 'Headers and client library minor version mismatch')) {
        return false;
    }
});

如果错误在请求生命周期中只发生一次(即,连接到数据库时,如果符合条件,临时自定义错误处理程序可能会使警告静音。

或者,通过Kibana这样的处理器运送日志,以进行实时过滤和绘图。