MariaDB中SHOW ERRORS/WARNINGS仅显最后一条,如何按max_error_count列全部?
解决MariaDB 10.10.2中SHOW ERRORS/WARNINGS仅显示最后一条的问题
先确认基础配置
首先执行以下语句,确认max_error_count的实际生效值:
SELECT @@max_error_count;
若返回值确实为64,说明问题出在错误记录的查询逻辑或会话存储机制上。
具体解决方案
1. 查询完整的会话错误/警告记录
SHOW ERRORS和SHOW WARNINGS默认仅展示最后一条执行语句产生的错误/警告,要获取当前会话的所有历史记录,需直接查询information_schema的专用表:
-- 查看当前会话所有错误 SELECT * FROM information_schema.ERRORS; -- 查看当前会话所有警告 SELECT * FROM information_schema.WARNINGS;
这两个表是会话级别的临时存储,仅保留当前连接产生的记录,断开连接后会自动清空。
2. 验证会话错误统计
执行以下语句,确认当前会话实际产生的错误/警告总数,排查是否真的存在多条记录:
SHOW SESSION STATUS LIKE 'Errors%'; SHOW SESSION STATUS LIKE 'Warnings%';
3. 显式重置会话错误存储配置
若默认配置被隐式修改,可显式设置会话级max_error_count,确保其能容纳足够的记录:
SET SESSION max_error_count = 64;
4. 注意语句执行时机
如果在产生错误/警告的语句后,执行了其他无错误的语句,SHOW ERRORS/WARNINGS会仅显示最后一条语句的状态(无错误/警告)。需在目标语句执行后立即查询错误记录。
关键说明
max_error_count控制的是会话中最多存储的错误/警告总数,超过阈值时最早的记录会被覆盖。但SHOW ERRORS/WARNINGS的默认行为并非展示所有存储的记录,仅针对最后一条语句,这是容易混淆的点。
内容的提问来源于stack exchange,提问作者g.pickardou
相关产品推荐
相关产品推荐

