MySQL Workbench与MariaDB客户端查询zabbix库大小结果不一致求助
排查MariaDB客户端查询zabbix数据库大小返回0的问题
以下是可能的原因及对应的验证/解决步骤:
1. 连接的数据库实例不一致
Ubuntu Server 22.04上可能同时运行MySQL和MariaDB服务(或不同端口的同类型服务),即便账号密码相同,若连接的实例不同,查询结果自然会有差异:
- 查看MySQL Workbench的连接参数(主机地址、端口),比如是否连接的是
127.0.0.1:3306; - 在终端用MariaDB客户端指定相同参数连接:
重新执行查询语句,确认结果是否正常。mysql -u your_username -p --host=127.0.0.1 --port=3306
2. 账号权限不足
虽然账号密码相同,但该账号在MariaDB实例中可能没有查询INFORMATION_SCHEMA.TABLES的权限:
- 在MariaDB客户端中执行以下语句查看当前用户权限:
SHOW GRANTS FOR CURRENT_USER; - 若没有
SELECT ON INFORMATION_SCHEMA.*或SELECT ON INFORMATION_SCHEMA.TABLES的权限,给账号授权:GRANT SELECT ON INFORMATION_SCHEMA.TABLES TO 'your_username'@'your_host'; FLUSH PRIVILEGES;
3. 数据库名称大小写不匹配
Linux系统下MySQL/MariaDB的数据库名称默认区分大小写,若MariaDB实例中的zabbix库名大小写与SQL语句中的不一致(比如实际是Zabbix或ZABBIX),会导致查询不到数据:
- 在MariaDB客户端执行以下语句确认存在的数据库:
SHOW DATABASES; - 若库名大小写不符,修改SQL语句中的
TABLE_SCHEMA值为实际的库名,或者统一库名大小写。
4. 表统计数据异常
部分情况下,MariaDB的INFORMATION_SCHEMA.TABLES统计数据可能出现异常:
- 尝试单独查询每个表的大小,确认是否能获取到数据:
SELECT TABLE_NAME, DATA_LENGTH + INDEX_LENGTH AS table_size FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='zabbix'; - 如果能查到单表数据但SUM结果为0,尝试刷新表统计信息:
之后再重新执行汇总查询。ANALYZE TABLE zabbix.*;
内容的提问来源于stack exchange,提问作者knez
相关产品推荐
相关产品推荐

