首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 連結遠端 MySQL 實例完整設定教學

     編輯:關於SqlServer

環境需求

  • 作業系統:Windows 7 / Server 2008+
  • SQL Server 2005+
  • 遠端 MySQL 實例(已開放 3306 埠、授權帳號)

三步驟建立連結伺服器

步驟 1:安裝 MySQL ODBC 驅動程式

下載並安裝 MySQL Connector/ODBC(建議 5.3+ 版),支援 Unicode 與 64 位元。

步驟 2:建立系統 DSN

  1. 控制台 → 系統管理工具 → ODBC 資料來源 (64 位元) → 系統 DSN → 新增
  2. 選擇 MySQL ODBC 5.3 Unicode Driver
  3. 填寫連線參數:
參數說明範例
Data Source NameDSN 名稱(連結伺服器將引用)MySQL_Link
Description描述Production MySQL
ServerMySQL 伺服器 IP192.168.1.100
Port連接埠3306
User已授權帳號sqlserver_link
Password密碼******
Database預設資料庫erp_db

點擊 Test 驗證連線成功。

步驟 3:建立 SQL Server 連結伺服器

  1. SSMS → 伺服器物件 → 連結伺服器 → 右鍵新增
  2. 一般頁面關鍵設定:
  • 安全性頁面:選擇「使用此安全性內容建立」,輸入 MySQL 帳號密碼
  • 伺服器選項:RPC、RPC Out 設為 True,其餘預設
  • 驗證與常用查詢語法

    測試連線

    右鍵連結伺服器 → 測試連線,或執行:

    SELECT * FROM OPENQUERY(LINK_MYSQL, 'SELECT VERSION()')

    查詢資料

    -- OPENQUERY 方式(推薦,遠端過濾)
    SELECT * FROM OPENQUERY(LINK_MYSQL, 'SELECT id, name FROM users WHERE status = 1')
    
    -- 四部分命名方式(本地過濾,效能較差)
    SELECT * FROM LINK_MYSQL.erp_db.dbo.users WHERE status = 1

    異質資料寫入

    -- INSERT OPENQUERY
    INSERT OPENQUERY(LINK_MYSQL, 'SELECT id, name, pwd FROM users')
    VALUES (8, '齊達內', '99999')
    
    -- 或使用 EXECUTE AT
    EXECUTE ('INSERT INTO users (id, name, pwd) VALUES (9, ''C羅'', ''88888'')') AT LINK_MYSQL

    常見問題排查

    • 錯誤 7303/7314:驅動程式位元數不符(SQL Server 64 位需裝 64 位 ODBC)
    • 中文亂碼:DSN 選 Unicode Driver、MySQL 表/欄位用 utf8mb4、連接字串加 CHARSET=utf8mb4
    • 分散式交易失敗:啟用 MSDTC、開放 135 埠、設定「不需要驗證」
    • 效能差:優先用 OPENQUERY 下推過濾、建立遠端索引、避免大量資料四部分命名查詢

    進階:遷移至較新架構

    SQL Server 2016+ 建議改用 PolyBase 或 Linked Server with ODBC Driver 17/18,支援更完整的資料類型對應與推斷統計資料。

    1. 上一篇文章:
    2. 下一篇文章:
    Copyright © 程式碼之家 All Rights Reserved
    選項設定值
    連結伺服器名稱LINK_MYSQL(自訂)
    伺服器類型其他資料來源
    提供者Microsoft OLE DB Provider for ODBC Drivers(關鍵)
    資料來源步驟 2 建立的 DSN 名稱(MySQL_Link)
    提供者字串留空
    目錄留空