关于用Delphi的FireADC组件连接MySQL的报错解决方法

        没错,我又双叒叕来了,最近因工作原因写了一个小工具,遇到了一些问题,上网一搜,我发现,没一个是能用的,唉,大家都搞复制粘贴,不去验证正确于否 ,如此下去,我们的身边,充斥着各种无用的垃圾信息,对于工作,对于学习,没有任何益处,OK,废话先到这里,走起。

        1.连接的时候,发现SSL的协议不匹配,如下图

像这样,经过我不停的复制粘贴各种版本的dll,删除mysql测试,我发现,此问题出现于以下两点:

a.版本不对

b.mysql安装的有问题

先别急着骂我,且听我细细道来。

首先,a.版本不对,其实是指得两个版本,看下图,

你用的libmysql,和你编译的平台不匹配,也就是说,你编译的是32位,但是用的dll确是64位的,或者,你编译的是64位的,用的32位的dll,这时候,会报上面第一个错误,此时,只要调整好编译的平台,和使用的dll匹配即可。

以上你操作了,还是不行,那就得看下你安装的是哪个版本,你安装的是什么版本,就使用对应版本的dll,dll的目录在mysql安装目录下的\lib文件夹中(X86,对应在C:\Program Files (x86),X64对应C:\Program Files中);

对应的b.mysql安装的有问题,就有些匪夷所思了。根据我的测试,由于我同时安装了X86和X64的两个平台的mysql的server端,所以这个时候就出现了分歧,虽然我设置了环境变量,在CMD中输入mysql -V出来的是X86的版本,但是我使用mysql -u -登录的时候,进入的却是X64的版本,这就比较尴尬了,不管我如何设置,它就是如此的倔强,不肯屈服(注册表我没有去设置,有和我同样情况的朋友可以自行测试,有一定的风险,要慎重)。然后我只能删除重装了,如果重装出现错误的请移步看这里:

关于安装MySQL报错的解决办法_未将对象引用设置到对象的实例。 ended configuration step: starting-优快云博客

此帖需要你关注了才能看,没办法,我辛辛苦苦的想解决办法,发出来,需要有人捧场,才有继续分享的动力。

OK,咱们接着说。

重装以后,mysql版本的二义性就没有了,因为它默认不允许同一版本安装两个平台版本(现在的8版本只能装X64的),然后这个问题就解决了,OK,不知道看到这里大家有没有看明白,没有看白的话,请再从头看一遍。

现在来说第2个错误 

这个也分两个情况:

a.版本不对

b.mysql版本出现了二义性

c.dll没有复制到程序运行目录

大家看到这里是不是在想,我为什么要单独把放在这里说,因为,这个和上面是有一点区别的,虽然不大。因为经过我的测试,我因为之前安装了两个平台版本的mysql(X86和X64同时安装),所以同时出现了错误1和错误2,经过我在全网的搜索,没有找到和我遇到同样问题的帖子,可以说,我这个就是唯一的帖子。且delphi的这习资料非常少,每个问题 ,都要自己花时间去想办法。OK继续,版本不对和二义性参见第一个错误解方法就行了。我想说的是第3点,如果你把上面的操作都弄了,还是报这个错误,不用想了,赶紧把dll复制到运行目录吧,马上你就会发现,程序可以正常运行了。

如图

好本次问题解决帖就分享到这里,希望看到本帖的朋友,给点点赞和评论,让我有继续分享下去的动力,以上都是本人花了大量的时间测试可行的,有问题也可以留言交流,顿首再拜。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值