使用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完成!
上一篇: .Net加密与解密——散列运算
下一篇: R语言中进行文件夹及文件夹内文件操作范例