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

ASP 連接 MySQL 完整實作:ODBC 驅動安裝與 DSN/DSN-less 連線範例

     編輯:MySQL 綜合教學

ASP + MySQL 經典架構實作指南

雖然 PHP+MySQL 是黃金搭檔,但在 Windows 舊系統上 ASP 連接 MySQL 仍有需求。本文記錄 ODBC 驅動安裝、系統 DSN 建立與 DSN-less 連線兩種方式的完整步驟。

環境需求

  • OS: Windows 98/2000/XP + PWS/IIS
  • MySQL: 3.23.32+ (Windows 版)
  • 驅動: MyODBC 2.50.36+ (現建議 5.3+ 或 8.0+)

步驟一:安裝 MyODBC 驅動

  1. 下載 myodbc-<版本>-win32.msi (官網 MySQL Connector/ODBC)
  2. 執行安裝精靈,預設路徑即可
  3. 驗證:控制台 → 系統管理工具 → ODBC 資料來源 (32/64 位元) → 驅動程式頁籤 → 應見 MySQL ODBC <版本> Driver

步驟二:建立系統 DSN (方式一)

  1. ODBC 資料來源管理員 → 系統 DSN → 新增
  2. 選擇 MySQL ODBC Driver
  3. 填寫連線資訊:
    欄位範例值
    Data Source Namemy_mysql_dsn
    DescriptionMySQL for ASP
    Serverlocalhost (或 IP)
    Userroot
    Passwordyour_password
    Databasetest_db
    Port3306
  4. 測試連線 → 確定

步驟三:ASP 程式碼範例 (系統 DSN)

<%
Dim conn, rs, connStr, sql
connStr = "DSN=my_mysql_dsn;UID=root;PWD=your_password;DATABASE=test_db"
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open connStr

sql = "SELECT username, email FROM users WHERE active = 1"
Set rs = conn.Execute(sql)

If Not rs.EOF Then
    Response.Write "<table border='1'><tr><th>Username</th><th>Email</th></tr>"
    Do While Not rs.EOF
        Response.Write "<tr><td>" & Server.HTMLEncode(rs("username")) & "</td>"
        Response.Write "<td>" & Server.HTMLEncode(rs("email")) & "</td></tr>"
        rs.MoveNext
    Loop
    Response.Write "</table>"
Else
    Response.Write "No data found."
End If

rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
%>

步驟四:DSN-less 連線 (方式二,免建立 DSN)

<%
Dim conn, connStr
connStr = "Driver={MySQL ODBC 8.0 Driver};" & _
          "Server=localhost;" & _
          "Database=test_db;" & _
          "UID=root;" & _
          "PWD=your_password;" & _
          "Option=3;" & _
          "Charset=utf8mb4;"

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open connStr
' ... 後續查詢邏輯相同
%>

注意: DSN-less 需在連線字串明確指定 Driver 名稱 (需與 ODBC 管理員中驅動程式名稱完全一致),且建議加上 Charset=utf8mb4 避免中文亂碼。

常見問題排查

錯誤原因解決
Driver not found驅動未安裝或 32/64 位元不匹配IIS 應用程式集區啟用 32 位元應用程式、安裝對應位元驅動
Access denied帳號/密碼/主機不匹配GRANT ...@'%'、FLUSH PRIVILEGES、確認防火牆
Character set mismatch中文亂碼連線字串加 Charset=utf8mb4、資料表 CHARSET=utf8mb4
Table not found大小寫敏感 (Linux 主機)確認表名大小寫、lower_case_table_names=1

安全性提醒

  • 勿在網頁原始碼寫死密碼,使用 Server.MapPath 讀取網站根目錄外的設定檔
  • 應用程式帳號僅授予必要權限:GRANT SELECT, INSERT, UPDATE, DELETE ON db.* TO 'asp_user'@'localhost' IDENTIFIED BY 'strong_pass';
  • 啟用參數化查詢 (ADODB.Command + Parameters) 防 SQL Injection

ASP 連接 MySQL 技術雖屬經典,但在維護舊系統時仍具參考價值。新專案建議採用 .NET Core / Node.js / PHP 等現代技術棧。

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