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

ODBC 連接 MySQL 實戰:Windows 環境驅動安裝與系統 DSN 配置

     編輯:MySQL 綜合教學

Windows ODBC 連接 MySQL 完整部署指南

ODBC (Open Database Connectivity) 是 Windows 平台通用資料存取介面。本文記錄 MyODBC 驅動安裝、系統 DSN 建立、連線測試與常見問題排查全流程。

一、環境準備

  • OS: Windows 10/11、Windows Server 2019/2022
  • MySQL Server: 8.0+ (本機或遠端)
  • 驅動: MySQL Connector/ODBC 8.0+ (官方現行版本,下載頁面)
  • 架構匹配:64 位元 OS 必裝 64 位元驅動,32 位元應用 (如舊版 Access、Excel 32-bit) 需額外裝 32 位元驅動

二、驅動安裝步驟

  1. 下載 mysql-connector-odbc-8.0.x-winx64.msi
  2. 雙擊執行,選擇 Typical 或 Custom (可選擇安裝路徑)
  3. 完成後驗證:
    • 控制台 → 系統管理工具 → ODBC 資料來源 (64 位元) / ODBC 資料來源 (32 位元)
    • 「驅動程式」頁籤 → 應見 MySQL ODBC 8.0 Unicode Driver 與 MySQL ODBC 8.0 ANSI Driver

三、建立系統 DSN (System DSN)

  1. ODBC 管理員 → 「系統 DSN」頁籤 → 「新增」
  2. 選擇 MySQL ODBC 8.0 Unicode Driver (支援 UTF-8/utf8mb4,推薦)
  3. 填寫連線參數:
    欄位範例值說明
    Data Source NameMySQL_ProductionDSN 名稱,應用程式引用
    DescriptionProduction MySQL Server描述
    TCP/IP Server192.168.1.100主機 IP 或主機名
    Port3306預設埠
    Userapp_user資料庫帳號
    Password********密碼 (可選,應用層提供更安全)
    Databasebusiness_db預設資料庫
  4. 進階設定 (「詳細資料」/「進階」按鈕):
    • Character Set: utf8mb4 (關鍵!防中文亂碼)
    • Connection Timeout: 10 秒
    • Read/Write Timeout: 30 秒
    • SSL: 無憑證時選 No,有憑證配置路徑
    • Allow Cleartext Plugin: 啟用 (支援 caching_sha2_password)
  5. 點擊「測試」→ 顯示「Connection successful」即完成

四、應用程式連線字串範例

Excel / Power Query

Data → Get Data → From Database → From ODBC → DSN: MySQL_Production

Access (連結表)

External Data → ODBC Database → Machine Data Source → MySQL_Production

C# / .NET (System.Data.Odbc)

using System.Data.Odbc;
string connStr = "DSN=MySQL_Production;UID=app_user;PWD=pass;";
using (var conn = new OdbcConnection(connStr)) {
    conn.Open();
    using (var cmd = new OdbcCommand("SELECT VERSION()", conn))
    using (var reader = cmd.ExecuteReader()) {
        while (reader.Read()) Console.WriteLine(reader[0]);
    }
}

Python (pyodbc)

import pyodbc
conn = pyodbc.connect('DSN=MySQL_Production;UID=app_user;PWD=pass;')
cursor = conn.cursor()
cursor.execute("SELECT VERSION()")
print(cursor.fetchone())

DSN-less 連線字串 (免建立 DSN)

Driver={MySQL ODBC 8.0 Unicode Driver};
Server=192.168.1.100;
Port=3306;
Database=business_db;
UID=app_user;
PWD=pass;
Charset=utf8mb4;
Option=3;

五、常見問題排查

現象原因解決
驅動程式不在清單中位元數不匹配 (64 位 OS 裝 32 位驅動)安裝對應位元驅動,或啟用 IIS 32 位應用程式
Connection failed: Access denied帳號/密碼/主機不匹配、caching_sha2_passwordGRANT ...@'%'、FLUSH PRIVILEGES、驅動啟用 Cleartext Plugin
中文亂碼Character Set 未設定或不匹配DSN/連線字串強制 Charset=utf8mb4
SSL connection errorMySQL 8.0 預設要求 SSLDSN 設 SSL=No、或配置 CA 憑證
Lost connection during querywait_timeout/interactive_timeout 過短調大伺服器參數、應用層重連機制

六、安全性最佳實務

  1. DSN 不儲存密碼,應用層從安全存儲 (Key Vault、環境變數、加密設定檔) 讀取
  2. 資料庫帳號最小權限:GRANT SELECT, INSERT, UPDATE, DELETE ON db.* TO 'app_user'@'%' IDENTIFIED BY 'strong_pass';
  3. 啟用 SSL/TLS 加密傳輸 (生產環境強制)
  4. 防火牆限制 3306 埠僅允許應用伺服器 IP 存取
  5. 定期輪換密碼、審計 ODBC 追蹤日誌 (可啟用驅動程式追蹤診斷)

ODBC 是 Windows 生態連接 MySQL 的標準橋樑。正確安裝驅動、配置 UTF-8 字元集、採用 DSN 統一管理,能避免 90% 的連線與亂碼問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved