首页>软件资讯>常见问题

常见问题

Toad for MySQL 连接mysql v8.0.31 utf8mb3问题

发布时间:2023-03-30 14:44:20人气:1842

最近客户反馈一个问题:在通过堡垒机toad连接mysql时报错


Character set 'utf8mb3' is not supported by .Net Framework.

1.png


当前使用的toad版本有v7.9和v8.0都不行,之前是可以的

2.png

3.png


同时客户还疑问:线上的有些mysql数据库通过toad是可以连接的, 这个库却连接失败。


对用户的问题进行分析:


a)、线上可以使用toad连接的mysql版本为v5.7.39, 不能连接的mysql版本为v8.0.31。 低版本正常连接没问题,高版本有问题。


b)、toad无法连接v8.0.31


带着客户的问题toad无法连接v8.0.31,先去网上搜索了一圈,发现网上有几个方案:


1、替换MySQL.Data.dll,但替换这个dll的前提是,你的应用/工具有源码可以编译,替换动态库后重新编译即可,这样能解决。但toad for mysql v8.0已经发布好几年了,也不是咱写的,也没有源码可以重新编译,也替换尝试过,但失败了


2、下载最新的MySQL .Net Connector文件 ,修改.NetFramework的配置文件 C:WindowsMicrosoft.NETFramework64 4.0.30319Configmachine.config, 添加


 <DbProviderFactories>

<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=8.0.29.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />

</DbProviderFactories> 

4.png


这个方法也尝试过,也失败了。


3、设置字符集为utf8mb4,  但检查后发现除了character_set_system为utf8mb3外,其它都是utf8mb4。

5.png


难道是这个影响的吗?


再看下v5.7.x的这个值是什么

6.png


5.7.x的显示的为utf8。带着疑问查看了官方文档,发现 mysql 从v8.0.24版本开始就把这个值从utf8改为utf8mb3了 (v8.0.23版本 character_system还是utf8),官方也说了utf8mb3代表的就是utf8,而且还发现这个是默认值,固定且无法修改

7.png


官方改字符集没毛病,而且toad 也可以正常连接mysql v8.0.24,但从 mysql v8.0.29开始,就会提示不支持 utf8mb3 。难道 mysql在8.0.29改了什么东西吗?


又翻了下mysql的版本发布说明,发现

8.png


是变了点东西。


还发现有人遇到与我们一样的问题,且提了bug

9.png


疑似官方人员在下方回复,让使用 Connector/NET 8.0.30尝试下,因为修复了字符映射的一个问题

10.png


此时我们可以确定的是,从mysql v8.0.29开始,mysql更改了某些字符相关的内容引起的bug, 导致从v8.0.29开始,后续的版本直到最新版本v8.0.32一直有这个问题, 没有解决。或许对mysql官方来说,你升级下Connector/NET就能解决,但实际上可能不是工具的问题,toad for mysql 8可以连旧版mysql。


我也下载了最新版本的 Toad Edge2.6.0 ,发现可以正常连接,也许toad 工具开发人员在几年前就更新了字符集什么的吧。

11.png

12.png


4、降低mysql 服务器的版本为v8.0.28及以下,这个方案理论上是可行,也能解决用户问题。但目前版本是不可能降的,而且当时也是为了解决mysql漏洞特意升级的。


降级能正常使用工具,但这个不太现实。


目前的解决方案有三个:


a) 降级mysql 至v8.0.28 (升级容易、降级难)


b) 升级Toad for mysql 至 toad Edge


c)使用其它工具替换, 推荐HeidiSQL (开源、免费、绿色)


上一条:Quest案例分析|Toad for Oracle解决方案竟为公司节省了接近670万美元!

下一条:SnapGene_业内受欢迎的日常分子生物学工具