圖文:通過sql server 連接mysql
1、在SQL SERVER服務器上安裝MYSQL ODBC驅動;
驅動下載地址:http://dev.mysql.com/downloads/connector/odbc/
2、安裝好后,在管理工具-ODBC數據源-系統DSN-添加-選擇 MYSQL ODBC 5.3 Unicode 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接口。
然后在安全性中 選擇使用此安全上下文創建連接 填寫MYSQL 數據庫的登陸名和密碼
4、sql 語句使用
--查詢 SELECT * FROM OPENQUERY(MYSQL_DBLINK, 'select * from tableName where id=''1''') --修改 UPDATE OPENQUERY(MYSQL_DBLINK, 'select * from tableName where id=''1''') set cname='測試' --or UPDATE OPENQUERY(MYSQL_DBLINK, 'select * from tableName ') set cname='測試' where id=1 --添加 INSERT INTO OPENQUERY(MYSQL_DBLINK, 'select * from tableName where 1=0')values ('xx','xx','xx'); --刪除 DELETE FROM OPENQUERY(MYSQL_DBLINK, 'select * from tableName where id=''1''')
**【注意】在查詢的時候如果出現: 鏈接服務器 'MYSQL_DBLINK' 的 OLE DB 訪問接口 'MSDASQL' 返回了對列 '[MSDASQL].cname' 無效的數據。
需要在MYSQL ODBC數據源上設置符合你的編碼格式,如圖:
5、OPENQUERY用法
對給定的鏈接服務器執行指定的傳遞查詢。該服務器是 OLE DB 數據源。OPENQUERY 可以在查詢的 FROM 子句中引用,就好象它是一個表名。OPENQUERY 也可以作為 INSERT、UPDATE 或 DELETE 語句的目標表進行引用。但這要取決於 OLE DB 訪問接口的功能。盡管查詢可能返回多個結果集,但是 OPENQUERY 只返回第一個。
Transact-SQL 語法約定
語法
OPENQUERY ( linked_server ,'query' )
參數
- linked_server
-
表示鏈接服務器名稱的標識符。
- ' query '
-
在鏈接服務器中執行的查詢字符串。該字符串的最大長度為 8 KB。
備注
OPENQUERY 不接受其參數的變量。
在 SQL Server 2000 和更高版本中,OPENQUERY 不能用於對鏈接服務器執行擴展存儲過程。但是,通過使用四部分名稱,可以在鏈接服務器上執行擴展存儲過程。例如:
EXEC SeattleSales.master.dbo.xp_msver
權限
任何用戶都可以執行 OPENQUERY。用於連接到遠程服務器的權限是從為鏈接服務器定義的設置中獲取的。