MariaDB升级后Power BI刷新报错求助
MariaDB 10.11.4升级后Power BI刷新报错解决方案
核心问题分析
升级MariaDB至10.11.4后,Power BI通过MySQL Connector NET连接时,因数据库元数据/数据类型兼容性变化,触发DBNull转换失败与字典键缺失的循环报错,与Connector NET版本升级无直接关联。
分步解决措施
1. 修复Power BI模型的空值处理逻辑
- 检查所有数据集字段,确认数据库中允许为NULL的字段,在Power BI模型中未被设置为非空数据类型(如数据库
INT NULL对应Power BI模型的“整数”类型)。 - 在Power Query编辑器中,对存在空值风险的字段添加空值替换逻辑:
Table.ReplaceValue(源, null, 0, Replacer.ReplaceValue, {"目标字段名1", "目标字段名2"}) - 排查计算列、度量值,确保未直接引用未处理空值的字段。
2. 校验MariaDB表结构变化
- 对比升级前后的表结构,重点排查字段的
NULL属性、数据类型是否发生隐性调整(如TEXT字段存储格式、DATE类型精度变化)。执行命令查看表结构:DESCRIBE `目标表名`; - 确认是否存在新增的系统字段或索引,导致Power BI查询返回未预期的列,引发字典键缺失问题。
3. 调整连接参数与驱动
- 在Power BI的MariaDB连接设置中,添加以下高级参数,强制兼容旧版本行为:
Allow User Variables=TrueOld Guids=TrueTreat Tiny As Boolean=False
- 尝试替换为MariaDB官方ODBC驱动(匹配10.11.4版本),重新配置数据源后测试刷新。
4. 清除Power BI缓存与重建模型
- 在Power BI Desktop中,进入文件>选项和设置>数据源设置,清除对应MariaDB数据源的缓存数据。
- 放弃增量刷新,重新全量导入数据并重建数据集模型,避免旧模型元数据与新数据库不兼容。
- 若使用Power BI服务,重新发布数据集并手动触发刷新,清除云端缓存。
5. 调整MariaDB兼容性设置
- 查看当前SQL_MODE配置:
SELECT @@SQL_MODE; - 若包含严格模式参数(如
STRICT_TRANS_TABLES),临时调整为兼容模式测试:
测试正常后,再根据业务需求调整合适的SQL_MODE,避免影响网店业务逻辑。SET GLOBAL SQL_MODE = 'NO_ENGINE_SUBSTITUTION';
已解决问题备注
2024年4月11日出现的[ma-3.1.20]无法连接到服务器报错,已通过添加IP白名单解决,与当前刷新报错无关联。
内容的提问来源于stack exchange,提问作者Ekfa
相关产品推荐
相关产品推荐

