错误记录-MariaDB连接异常

简介:

问题:

C#,VS2022,mariadb-10.11.5-winx64,using MySql.Data.MySqlClient;

在执行connection.Open()时抛出异常:System.InvalidCastException:"Object cannot be cast from DBNull to other types."

By MaQaQ 2023-11-22

分析:

原因:

MySql.Data 加载排序规则的方法假定"id"列的值不为空,而从 10.10 版本开始,MariaDB 将"id"列切换为"Allow Null",并且在 Colations 中有很多行带有 NULL id, 这会导致"Object cannot be cast from DBNull to other types."异常。

解决方案:

1、回滚MariaDB版本到10.9

MariaDB Server下载地址:https://mariadb.org/mariadb/all-releases/

找到版本10.9.8:

镜像源选择阿里云,点击Download:

在控制面板中将之前的MariaDB卸载,然后安装10.9.8版本即可,卸载前可以用HeidiSQL将原来的数据库导出成sql脚本,然后重装后再执行sql导入。

2、将MySql.Data.MySqlClient换成MysqlConnector

直接在NuGet中搜索即可:

总结:

1、回滚MariaDB版本到10.9或之前

2、换成MysqlConnector

相关推荐
e***09619 小时前
Sql Server数据库远程连接访问配置
数据库
2501_9240641120 小时前
2025数据库性能测试工具:Utest、JMeter、HammerDB 等主流方案推荐
数据库·测试工具·jmeter·数据库性能测试·数据库负载测试·数据库压测工具·jmeter 压力测试
movie__movie20 小时前
秒杀库存扣减可以用redis原子自增么
数据库·redis·缓存
找不到、了21 小时前
MySQL 索引下推(ICP)的实战,彻底提升查询性能
数据库·mysql
b***676421 小时前
Springboot3 Mybatis-plus 3.5.9
数据库·oracle·mybatis
kitty_hi21 小时前
mysql主从配置升级,从mysql5.7升级到mysql8.4
linux·数据库·mysql·adb
王宪笙1 天前
Qt之数据库使用示例
数据库·qt
q***42821 天前
Redis 设置密码(配置文件、docker容器、命令行3种场景)
数据库·redis·docker
运维行者_1 天前
网站出现 525 错误(SSL 握手失败)修复指南
服务器·网络·数据库·redis·网络协议·bootstrap·ssl
fruge1 天前
openGauss数据库实操过程:从环境搭建到连接配置,第三方软件进行数据库管理
数据库·oracle