目標
已知mysql連接參數(地址和用戶),期望通過Microsoft?Sql Server Management Studio (以下簡稱MSSSMS)連接Mysql,在MSSSMS中直接查詢或修改Mysql中的數據。
一般是選最新的版本下載。
選64位還是32位,要保證和你的sqlserver版本一致,利用下面sql查看:
一、下載mysql的odbc驅動
1、官方下載包
二、安裝mysql odbc
雙擊msi文件即可安裝,安裝步驟如下:
(三)配置ODBC
打開ODBC,添加數據源驅動程序,配置MySQL鏈接
2.1、搜索odbc,用管理員身份運行:
2.1 控制面板→管理工具→ODBC數據源(64位)→雙擊打開
2.2 添加msql odbc數據源
點擊系統DSN→添加→MySQL ODBC x.1 Unicode Driver
點擊完成后,跳出mysql鏈接頁面
Data Source Name:數據源名稱
Decription:描述,隨便寫
Server:MYSQL服務器的IP
Port:MYSQL的端口,默認的是3306.可以改的.
User:連接賬號(在mysql上授權的賬號,同時給予相應權限)
Password:密碼
Database:選擇鏈接的數據庫
?
2.3測試添加是否成功
填上mysql的基本信息,點擊Test提示成功即可點擊ok
五 、打開!SQL Server Management Studio
右鍵添加鏈接服務器
5.1 常規
鏈接服務器:可自定義取名,用于后面調用訪問
數據源為odbc的名稱,如這里,如這里我應該填寫MYSQL
5.2 密碼
填寫mysql的用戶和密碼,點擊確定,無任何報錯即可。
經過上面兩步,就可以連接成功了,連接成功是沒有成功窗口的。
服務器下面能看到連接名且下面有數據庫就算成功連接。
--創建鏈接服務器 更新2023.12.09 11:30--創建鏈接服務器
EXEC sp_addlinkedserver @server = 'MYSQLTEST', @srvproduct='MySqlTest',@provider = 'MSDASQL',@datasrc ='MYSQL'--刪除鏈接服務器
execute sys.sp_dropserver @server='MYSQLTEST'--其中的 @server = 'MYSQLTEST'指自定義的服務名,@srvproduct='MySqlTest'自己隨便 ,@provider='MSDASQL'固定這個, @datasrc ='MYSQL' 是指 ODBC中的數據源名稱。
執行語句
刷新對象資源管理器中的鏈接服務器,能看到的Connector ODBC里面填的data source name內容,目錄下對應的是mysql里的數據庫
六、linkedserver查詢語句
6.1 利用OPENQUERY訪問
--linkedserver查詢語句 利用OPENQUERY訪問 更新2023.12.09 11:30-- MYSQLTEST為鏈接服務器名稱
-- 里面的select需要使用''引起來,并且如果尋找where條件的字符還需要再添加一次引號
select * from openquery(MYSQLTEST,'select * from user ')select * from openquery(MYSQLTEST,'select * from user where User = ''root''')
(此處OPENQUERY函數相當于是一個表名,你在SQL SERVER中可以對其進行增刪改查的操作。此處好像只能增刪改查,別的就不行了,請高手指教一下)
openquery解釋:
對給定的鏈接服務器執行指定的傳遞查詢。該服務器是 OLE DB 數據源。OPENQUERY 可以在查詢的 FROM 子句中引用,就好像它是一個表名 。OPENQUERY 也可以作為 INSERT、UPDATE 或 DELETE的語句的目標
表進行引用。但這要取決 于 OLE DB 訪問接口的功能。盡管查詢可能返回
多個結果集,但是 OPENQUERY 只返回第一個。
OPENQUERY(linked_server,’query’)
Linked_server表示鏈接服務器名稱的標識符。‘query’為查詢語句
?
----------------------
附件?
- linkedserver可能報錯問題
如果上面連接linkedserver時可能報如下錯誤:
解決辦法:
- 新增用戶名并分配權限
- 需要對root賬戶做些操作,這個方法不建議,就不做解釋了。