之前,在Ubuntu服务器上安装的mysql-server,本地写了一个客户端(C#),当时开发完成后没什么问题。

最近服务器面临更换,需要把数据备份和恢复到新服务器。

等数据都恢复完了,发现之前的客户端程序连接mysql有问题,总是产生异常:给定关键字不在字典中。网上搜了很多帖子,大多都是说编码格式问题,查看mysql都是utf8mb4,连接时指定的编码为 utf8。按照网上说的:1)修改数据库的编码格式,有好多地方都要修改,修改可能引起其他问题;2)修改程序里连接字符串编码,试了不行。

后来发现,客户端连接原来的服务器还是可以的。搜了很久,无意发现两边安装的mysql版本不一样,旧服务器是8.0.26,新服务器是8.0.29。这个跟C#工程里Mysql.data.dll当前版本和可升级版本一样。于是升级了dll就好了。

感觉不是编码格式不一致的问题,就是版本之间不兼容。新的dll版本解决了之前的问题(升级dll后的客户端程序还是可以正常连接旧服务器mysql)

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐