使用SQL Server链接服务器访问MySQL遇到的一些坑

因项目需要,要配置SQL Server链接服务器访问MySQL,然后不是连不上,就是乱码,折腾了一整天总算配成功了!

简单记录一下这些坑以后备用吧。

系统环境:windows server 2008 r2 x64,sql server 2008 r2 x86,mysql 5.5.27 x86

安装MySQL ODBC,一开始安装的是mysql-connector-odbc-5.3.9-winx64。

结果报1918错误,查安装手册,需要VC2013的库,下载安装vcredist_x64,配置ODBC系统DNS,测试成功。

但是在sql server的链接服务器中就是找不到这个数据源,奇怪了,一开始还以为是和mysql有关,还把mysql升级到了5.5.57 x64,但仍然不行。

重装安装x86的odbc驱动和vc库,连接成功!

然后就是编码问题了,mysql用的是gbk,在sql server这边查出总是乱码,配置odbc的编码gbk,gb2312,latin1,都没有效果。

期间也试了安装5.1的ODBC驱动,普通的查询是可以使用,但是要查询mysql的视图就还是乱码,虽然也勉强能用,但不完美啊,难道还要在sql server这边建相同的视图吗?

继续偿试,最后通过配置链接服务器的访问接口字符串,成功了,访问接口字符串不需要完整的配置,只需配Charset=lant1这一段就可以了,测试通过。

最后的总结步骤:

1、安装ODBC5.3,x86还是x64需要根据sql server的版本来决定。

如果报1918,那就还要安装vc2013库,x86还是x64需要根据ODBC的版本来决定。

2、配置ODBC系统DNS,如果是x64的系统要配置32位的ODBC,那需要执行\Windows\SysWOW64\odbcad32.exe。

3、sql server新建链接服务器,访问接口字符串填:Charset=lant1。

4、查询方式:Select * from OpenQuery([linkedServerName], ‘query’)。

OK完成!

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐