程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server訪問MySql

SQL Server訪問MySql

編輯:關於SqlServer

使用環境:

操作系統:window7

數據庫:SQL Server2005、MySQL5.0

1、在安裝了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.html

MySQL的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:數據源名稱,不能為空,可以隨便填,但是要記住了,後面有用到

Description:數據源描述,可以為空,也可以隨便填

TCP/IP Server:安裝了MySQL的機器的Ip地址

Port:端口號,MySQL默認端口號3306

User:登陸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';

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved