SQLSERVER访问MYSQL表中文显示成乱码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
错误描述:SQLSERVER访问MYSQL表中文显示成乱码,中文会显示成????
解决思路:用的是mysql-5.1.50-win32 与odbc3.1版本的.现在改成ODBC5·1 这样转换就没有问题SQLSERVER连接MYSQL 建立链接如下:
数据库软件与ODBC软件:mysql-5.1.50-win32与ODBC5·1(注意,odbc3.1版本,会出现乱码)MYSQL数据库情况:gmp_test
第一步:先要在MYSQL进行授权,让主机能访问MYSQL数据库,设置如下:
在mysql数据库执行,语句:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.216' IDENTIFIED BY 'yxtech' WITH GRANT OPTION;
第二步:在SQLSERVER主机,设置ODBC连接,设置如下图:
第三步:在SQL SERVER 配置连接,配置语句如下
--删除连接
exec sp_dropserver'dxmysql','droplogins'
--建立一个新连接
EXEC SP_ADDLINKEDSERVER
@server ='dxmysql', --连接名称(随意,规范就可)
@srvproduct ='MYSQL', --连接MYSQL,数据库类型,固定的
@provider ='MSDASQL', --连接MYSQL的编码,固定的
@datasrc ='my_sql' --建立的ODBC连接(第二步建立的)
--建立用户连接
EXEC sp_addlinkedsrvlogin'dxmysql','false','bi_etl','root','yxtech' --'dxmysql'为连接名称
--'bi_etl'为SQLSERVER用户,如果为NULL
--'root','yxtech' 为登录MYSQL 的用户及密码
--进行查询
select*FROM OPENQUERY(dxmysql,'select * from test1')