sql server 連接訪問 mysql


SQL 如何鏈接 遠程MySQL 最近遇到“SQL如何鏈接遠程MySQL”這個問題,現在問題終於解決,特把方法貼出來:(我所用的操作系統是Win7,數據庫是SQL2005。)

1、在SQL SERVER服務器上安裝MYSQL ODBC驅動;
http://dev.mysql.com/downloads/mirror.php?id=376346(下載地址)


2、安裝好后,在管理工具-ODBC數據源-系統DSN-添加-選擇 MYSQL ODBC 3.51 DRIVER-完成

 

會跳出來MYSQL連接參數.
 Data Source Name:數據源名稱
 Decription:描述,隨便寫
 Server:MYSQL服務器的IP
 Port:MYSQL的端口,默認的是3306.可以改的.
 User:連接賬號(在mysql上授權的賬號,同時給予相應權限)
 Password:密碼

 Database:選擇鏈接的數據庫
填好之后,點下test.成功了則會如圖跳出提示框.

 

成功之后:

 

3,打開SQL數據庫,找到鏈接服務器.創建鏈接服務器,大家都會的,所以我就把參數發一下.如圖,常規選項的其他的就不用填了.確定就行了.

   這里,需要注意:訪問接口要選擇“Microsoft OLE DB Provider for ODBC Drivers”。

         數據源:選擇之前已創建好的ODBC接口。

這里訪問字符串要填寫,不填寫無法成功,並且當前sql server連接與odbc必須在同一台機器,如果sql server連接其他遠程sql server數據庫,則無法成功

 Driver={MySQL ODBC 5.1 Driver};Server=ServerName;Database=myDB; 
                                  User=myUserName;Password=myPassword;Option=3;

 

4、測試一下:

      (查詢語句)SELECT   *   FROM  OPENQUERY(MYSQL, 'select   *   from   table '  )

      (插入語句)Insert openquery(MYSQL, 'select * from table') (id,name,password) values(8,'齊達內','99999')

 

5、<補充>

  (刪除語句)delete openquery(MYSQL, 'SELECT * FROM table')
  (修改語句)update openquery(MYSQL, 'SELECT * FROM table') SET x_name = 'C' WHERE x_id = 1

   如果在執行‘刪除語句’、‘修改語句’時報錯,可以試一下下面的方法:

   <補充>在配置數據源的時候,勾選上“Return Matching Rows”項

          

--------------------------------------------

在公司中經常會遇到部署多種數據庫環境的情況,對於開發人員來說經常在不同數據庫之間轉換確實有些繁瑣,本篇將介紹從SQL Server 操作MySQL 數據庫的方法。

數據庫測試環境

1. SQL Server 2008

2. MySQL 5.1.36 
    Database: Test 
    Table: TestTable

創建MySQL 測試表

CREATE TABLE `testtable` ( `id` int(11) DEFAULT NULL, `name` varchar(50) DEFAULT NULL, `age` int(11) DEFAULT NULL )

創建Linked Server

       下面來創建一個與MySQL交互的鏈接(類似Oracle 的DBLink),在SQL Server 管理器中右鍵Server Objects 目錄下的Linked Servers 點擊“New Linked Server”:

通過SQL Server 2008 訪問MySQL - {GnieTech} - 博客園 - jason - jason_199806 的博客

Linked server 鏈接名稱

Server Type 選擇“Other data source”

Provider 選擇“Microsoft OLE DB Provider for ODBC Drivers”

Product name 填寫MySQL 主機地址

Provider String 填寫 Driver={MySQL ODBC 5.1 Driver};Server=ServerName;Database=myDB; 
                                  User=myUserName;Password=myPassword;Option=3;

通過SQL Server 2008 訪問MySQL - {GnieTech} - 博客園 - jason - jason_199806 的博客

也可以通過TSQL 直接創建:

EXEC master.dbo.sp_addlinkedserver @server = N'MYSQLLINK', @srvproduct = N'localhost', @provider = N'MSDASQL', @provstr = N'Driver={MySQL ODBC 5.1 Driver};Server=localhost; Database=test;User=root;Password=root;Option=3;' EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'MYSQLLINK', @useself = N'False', @locallogin = N'localhost', @rmtuser = N'root', @rmtpassword = N'root'

創建完成后便會看到下圖中的鏈接:

操作MySQL 數據庫

       在SQL Server 中通過OPENQUERY 函數對MySQL 進行操作,該函數包含兩個參數:第一個為已創建的鏈接名稱,第二個為SQL 查詢,它將返回對Linked Server 的讀取或修改操作。如下操作示例:

OPENQUERY ([LinkedServer], 'SELECT * FROM [RemoteTable]')

向TestTable 中插入測試數據:

insert into openquery(mysqllink,'select * from testtable') select 1,'Peter',30;

查詢數據:

select * from openquery(mysqllink,'select * from testtable');

修改數據:

update openquery(mysqllink,'select * from testtable') set where

刪除數據:

delete from openquery(mysqllink,'select * from testtable') where。。。
 
>相關參考資料
http://dev.mysql.com/downloads/mirror.php?id=376346

http://www.connectionstrings.com/mysql#p21

 

 

引自:http://blog.csdn.net/leamonjxl/article/details/6432013


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM