1. 程式人生 > 其它 >如何在 SQL Server 中建立和配置連結伺服器以連線到 MySQL

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

概述

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

本文分為三個部分:

  • 為 MySQL 安裝ODBC驅動程式

  • 配置 ODBC 驅動程式以連線到 MySQL 資料庫

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

 

什麼是連結伺服器?

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

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 驅動程式,具體取決於將與哪個應用程式一起使用:

  • mysql-connector-odbc-8.0.17-win32.msi 用於 32 位應用程式

  • mysql-connector-odbc-8.0.17-winx64.msi 用於 64 位應用程式

安裝適用於 Windows 的 MySQL ODBC 驅動程式非常簡單。雙擊下載的檔案,將出現歡迎對話方塊:

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

在“設定型別”對話方塊下,選擇“典型”單選按鈕並按“下一步”按鈕:

準備安裝程式”對話方塊顯示將安裝的內容和位置。按安裝按鈕安裝 ODBC 驅動程式:

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

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

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

ODBC 資料來源管理器對話方塊 的驅動程式選項卡下,檢查 MySQL ODBC 驅動程式是否存在:

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

要使用 ODBC 驅動程式連線到 MySQL 資料庫,請在“ ODBC 資料來源管理器”對話方塊中的“系統 DSN ”選項卡下,按“新增”按鈕:

Create New Data Source對話方塊中,選擇MySQL ODBC Driver並按Finish按鈕:

MySQL 聯結器/ODBC 資料來源配置對話方塊中:

對於資料來源名稱文字框,選擇輸入資料來源名稱。在描述文字框中,根據需要輸入資料來源的描述。

通過選擇適當的單選按鈕,使用TCP/IP 伺服器或命名管道連線方法連線到 MySQL。

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

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

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

此外,資料來源名稱將出現在ODBC 資料來源管理器對話方塊 的系統 DSN選項卡中:

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

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

轉到 SSMS,在物件資源管理器中,Server Objects資料夾下,右鍵單擊Linked Servers資料夾,然後從選單中選擇New Linked Server選項:

將出現新建連結伺服器對話方塊。這裡將輸入配置以連線到 MySQL 伺服器:

常規選項卡的連結伺服器文字框中,輸入連結伺服器的名稱(例如 MYSQL_SERVER)。

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

產品名稱框下,輸入任何適當的(有效)名稱。對於資料來源,應輸入 ODBC 資料來源的名稱:

Security選項卡中,單擊Be made using this security context單選按鈕,然後在Remote loginWith password框中,輸入 MySQL 伺服器例項中存在的使用者名稱和密碼,該例項被選為資料來源:

Server Options 選項卡下,將RPCRPC Out欄位設定為True:

如果這兩個選項未設定為 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資料夾中:

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

Provider Options對話方塊中,選中Nested queriesLevel zero onlyAllow in processSupport 'Like' operator複選框:

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

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

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

The following error message may appear:

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”.