SQL Server访问MySql
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server访问MySql相关的知识,希望对你有一定的参考价值。
使用环境:操作系统:window7数据库:SQL Server2005、mysql5.01、在安装了SQL Server的服务器上安装MySql的ODBC驱动:下载链接:http://dev.mysql.com/downloads/mirror.php?id=376346点过去之后会链接到以下的页面,不用登陆,直接点击下面的“No thanks,just start my download”就会弹出下载框。
上面的链接只是window7的ODBC驱动,下面这个链接比较全,可以根据需要下载相应的驱动:http://dev.mysql.com/downloads/connector/odbc/5.1.htmlMySql的ODBC驱动的安装过程就是一路next,一路默认就行,直到install,finish。2、创建ODBC数据源:点击“控制面板”—>>“管理工具”—>>"数据源(ODBC)",系统会弹出“ODBC数据源管理器”,选择“系统DSN”选项卡,可以看到已有的系统数据源信息。
点击“添加”按钮,在弹出的“创建新数据源”框中选择相应的驱动程序。我这里连接的是MySql,所以选MySQL的ODBC程序。MySQL的ODBC提供了ANSI和Unicode两个版本,它们之间到底有什么区别我是不知道啦,但从字面上来看,Unicode应该能够支持更多的字符集,而ANSI只针对有限的字符集的范围。我这只是用来测试,就随便选个ANSI的driver吧。
点击“完成”按钮时,系统会弹出MySQL ODBD数据源配置框,如图:Data Source Name:数据源名称,不能为空,可以随便填,但是要记住了,后面有用到Deion:数据源描述,可以为空,也可以随便填TCP/IP Server:安装了MySql的机器的Ip地址Port:端口号,MySql默认端口号3306User:登陆MySql的用户名Password:登陆MySql的密码Database:数据源,也就是要用的数据库
填写完之后,可以点击下“Test”测试一下,要是连接正确会弹出框
连接不成功则弹出:
测试成功,点击“OK”按钮,此时“ODBC”数据源管理器中就多出了刚刚添加的数据源。要是想修改刚刚填写的配置信息,可以点“配置”按钮。
最后“确定”。3、建立链接服务器在SQL Server2005中找到“链接服务器”节点,右击选择“新建链接服务器”。
链接服务器:一定要填,可以随便填,它会自动将填写的信息转成大写服务器类型选择“其他数据源”访问接口:选择“Microsoft OLE DB Provider for ODBC Drivers”(默认的是“Microsoft OLE DB Provider for SQL Server”,两个挺像的,别弄混了)产品名称:官方解释是要作为链接服务器添加的OLE DB数据源,也不懂什么意思,貌似可以随便填数据源:就是上面建立的ODBC数据源,我这里是testmysql
然后选“安全性”选项卡,最下面的链接方式选择最后一种“使用此安全上下文建立连接”,输入用户名和密码之后点击“确定”。
此时“链接服务器”节点下就会多出刚刚建立的链接服务器。
4、简单测试执行SQL语句:select * from OPENQUERY(TESTMYSQL, ‘select * from cdr_ex‘)其中“TESTMYSQL”为刚刚建立的链接服务器,cdr_ex是建数据源时选定数据库中的一张表。后来在网上查到也可以用SQL语句直接建“链接服务器”,免了前面的一大堆东西,这里用SQL新建一个名为“testmysql2”的链接服务器,拷贝并修改之后的SQL如下:
- IF EXISTS (SELECT srv.name FROM sys.servers srv WHERE srv.server_id != 0 AND srv.name = N‘testmysql2‘)
- exec sp_dropserver ‘testmysql2‘,‘droplogins‘
- exec sp_addlinkedserver
- @server=‘testmysql2‘, --这是ODBC里面data source name
- @srvproduct=‘testmysql2‘, --这个你自己随便吧
- @provider=‘MSDASQL‘, --这是固定的,不能瞎填,否则死定了
- @datasrc=NULL,
- @location=NULL,
- @provstr=‘DRIVER={MySQL ODBC 5.2 ANSI Driver};SERVER=192.168.0.119;DATABASE=asteriskcdrdb;UID=root;pwd=root;PORT=3306;‘,
- --注意驱动名称要与odbc相同
- @catalog = NULL
- exec sp_addlinkedsrvlogin
- @rmtsrvname=‘testmysql2‘,
- @useself=‘false‘,
- @rmtuser=‘root‘,
- @rmtpassword=‘root‘;
技术分享:www.kaige123.com
以上是关于SQL Server访问MySql的主要内容,如果未能解决你的问题,请参考以下文章
将访问 mysql 的 java 应用程序迁移到使用 SQL Server 的代码