天天看點

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

作者:雪竹聊運維

概述

本文将指導您完成在 SSMS 中成功建立連結伺服器以連接配接到 MySQL 資料庫的所有必要步驟。

本文分為三個部分:

  • 為 MySQL 安裝ODBC驅動程式
  • 配置 ODBC 驅動程式以連接配接到 MySQL 資料庫
  • 使用 ODBC 驅動程式建立和配置連結伺服器
如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

什麼是連結伺服器?

MSSQL 中的連結伺服器是連接配接到給定伺服器的其他資料庫伺服器,可以查詢和操作其他資料庫中的資料。例如,我們可以将一些 MySQL 資料庫連結到 MSSQL,并像使用 MSSQL 上的任何其他資料庫一樣使用它。

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

01. 為 MySQL 安裝 ODBC 驅動程式

ODBC 代表開放式資料庫連接配接(連接配接器)。它是微軟在 1990 年代開發的。通常,即用于通路資料庫系統的 API(應用程式程式設計接口)。對于非 Windows 作業系統,使用JDBC(Java 資料庫連接配接)。在 Windows 上安裝 MySQL 的 ODBC 驅動程式之前,請確定 Microsoft 資料通路元件 (MDAC) 是最新的,并且您的系統上安裝 了Microsoft Visual C++ 2013 Redistributable Package 。你可以下載下傳和安裝适用于 Windows 的 MySQL ODBC 驅動程式。可以安裝兩個版本的适用于 Windows 的 MySQL ODBC 驅動程式,具體取決于将與哪個應用程式一起使用:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL
  • mysql-connector-odbc-8.0.17-win32.msi 用于 32 位應用程式
  • mysql-connector-odbc-8.0.17-winx64.msi 用于 64 位應用程式

安裝适用于 Windows 的 MySQL ODBC 驅動程式非常簡單。輕按兩下下載下傳的檔案,将出現歡迎對話框:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

按下一步按鈕後,将出現許可協定對話框。如果您同意許可協定,請按我接受許可協定中的條款單選按鈕,然後單擊下一步按鈕:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

在“設定類型”對話框下,選擇“典型”單選按鈕并按“下一步”按鈕:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

“準備安裝程式”對話框顯示将安裝的内容和位置。按安裝按鈕安裝 ODBC 驅動程式:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

幾秒鐘後,MySQL ODBC 驅動程式的安裝完成:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

要确認機器上安裝了 MySQL 的 ODBC 驅動程式,可以從控制台檢查:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

另一種檢查方法是通過ODBC 資料源管理器對話框:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

在ODBC 資料源管理器對話框 的驅動程式頁籤下,檢查 MySQL ODBC 驅動程式是否存在:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

02. 配置 ODBC 驅動程式以連接配接到 MySQL 資料庫

要使用 ODBC 驅動程式連接配接到 MySQL 資料庫,請在“ ODBC 資料源管理器”對話框中的“系統 DSN ”頁籤下,按“添加”按鈕:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

在Create New Data Source對話框中,選擇MySQL ODBC Driver并按Finish按鈕:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

在MySQL 連接配接器/ODBC 資料源配置對話框中:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

對于資料源名稱文本框,選擇輸入資料源名稱。在描述文本框中,根據需要輸入資料源的描述。通過選擇适當的單選按鈕,使用TCP/IP 伺服器或命名管道連接配接方法連接配接到 MySQL。

在此示例中,選擇了TCP/IP Server單選按鈕。在文本框中,輸入 MySQL 伺服器的主機名或 IP 位址。預設情況下,主機名是localhost,IP 位址是127.0.0.1。在端口框中,輸入列出 MySQL 伺服器的 TCP/IP 端口。預設為3306端口。

在“使用者”框中,鍵入連接配接到 MySQL 資料庫所需的使用者名,并在“密碼”框中,鍵入使用者密碼。在Database組合框下,選擇要建立連接配接的資料庫:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

要測試它是否連接配接到正确配置的 MySQL 資料庫,請按測試按鈕。如果連接配接建立成功,會出現以下資訊:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

此外,資料源名稱将出現在ODBC 資料源管理器對話框 的系統 DSN頁籤中:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

03. 使用 ODBC 驅動程式建立和配置連結伺服器

現在當 MySQL 的 ODBC 驅動程式已經安裝并配置了連接配接 MySQL 資料庫的 ODBC 驅動程式後,就可以開始在 SSMS 中配置 Linked Server 以連接配接 MySQL。

轉到 SSMS,在對象資料總管中,在Server Objects檔案夾下,右鍵單擊Linked Servers檔案夾,然後從菜單中選擇New Linked Server選項:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

将出現建立連結伺服器對話框。這裡将輸入配置以連接配接到 MySQL 伺服器:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

在正常頁籤的連結伺服器文本框中,輸傳入連結接伺服器的名稱(例如 MYSQL_SERVER)。

選擇其他資料源單選按鈕并從提供程式清單中選擇Microsoft OLE DB Provider for ODBC Drivers項:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

在産品名稱框下,輸入任何适當的(有效)名稱。對于資料源,應輸入 ODBC 資料源的名稱:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

在Security頁籤中,單擊Be made using this security context單選按鈕,然後在Remote login和With password框中,輸入 MySQL 伺服器執行個體中存在的使用者名和密碼,該執行個體被選為資料源:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

在Server Options 頁籤下,将RPC和RPC Out字段設定為True:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

如果這兩個選項未設定為 true 并執行如下代碼:

EXEC ('SELECT * FROM test.table1') AT MYSQL_SERVER           

The following error may appear:

Msg 7411, Level 16, State 1, Line 1 Server ‘MYSQL_SERVER’ is not configured for RPC.

設定“建立連結伺服器”對話框 下的所有選項後,按“确定”按鈕。新建立的連結伺服器應該出現在Linked Servers檔案夾中:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

在開始從 MySQL 資料庫查詢資料之前,轉到Linked Server檔案夾下的Providers檔案夾,右鍵單擊MSDASQL提供程式,然後從上下文菜單中選擇Properties指令:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

在Provider Options對話框中,選中Nested queries、Level zero only、Allow in process、Support 'Like' operator複選框:

如何在 SQL Server 中建立和配置連結伺服器以連接配接到 MySQL

例如,如果未選中Allow in process複選框,則在執行如下代碼時:

SELECT *
FROM OPENQUERY(MYSQL_SERVER, 'SELECT * FROM test.table1')           

可能會出現以下錯誤消息:

Msg 7399, Level 16, State 1, Line 1 The OLE DB provider “MSDASQL” for linked server “MYSQL_SERVER” reported an error. Access denied. Msg 7350, Level 16, State 2, Line 1 Cannot get the column information from OLE DB provider “MSDASQL” for linked server “MYSQL_SERVER”.

小結

MSSQL企業中的使用還是很普遍的,尤其是在中小企業中,MSSQL資料庫配置連結伺服器也是一個常見的應用,最近在生産環境中碰到這樣一個案例,是以作了一下筆記,以備不時之需。本文首次在本人部落格上發表https://www.cnblogs.com/lkj371/p/15982640.html,轉載請注明出處!