问题现象
业务程序通过ODBC链接RDSforMysql数据库,程序启动后运行提示:[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配。
处理思路
梳理出ASP程序到数据库中间的关键节点,ASP程序-》ODBC驱动程序管理器-》Mysql驱动-》数据库,进行定界。
排查过程
1、通过DAS登录RDS和RDS本身的日志,确认RDS本身正常,并通过ODBC数据源连接RDS进行test结果正常,来定界业务异常和RDS数据库无关,问题出现在ASP程序-》ODBC数据源(Mysql驱动)这一段,也验证了‘驱动程序和应用程序之间的体系结构不匹配。’是根因 。
2、定界不是数据库本身问题,但是ECS连同windows镜像都是华为云提供的,需要拉通解决。
3、参考 https://blog.csdn.net/buptlihang/article/details/80275641 ,分别下载、安装mysql ODBC32位和64位的驱动程序,然后再卸载了64位的odbc驱动,再下载安装32位的驱动(此时遇到需依赖安装32位VS的问题,那就先下载安装提示的VS),并更新ODBC数据源的驱动程序后,问题解决。
根因分析
前端业务通过ASP ODBC调用后台数据库,但是安装的ODBC版本为64位,而ASP为32位,所以不匹配。
问题解决
重新下载安装了MYSQL ODBC8.0 CONNECTOR 32位版(前提需要安装微软Visual Studio 2015 x86即32位版),然后重启,再打开ODBC 建立32位DSN,问题解决!