libmysql.dll,功能全、效能高,但需熟悉 API、不支援 ODBC/ADO 通用介面。若無法執行 MSI,可手動註冊 myodbc.dll (或 myodbc5.dll, myodbc8w.dll):
C:\Windows\SysWOW64\C:\Windows\System32\regsvr32 myodbc.dll (部分版本無需此步)。.reg) 註冊驅動描述 (依版本調整路徑):Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\MySQL ODBC 8.0 Unicode Driver]
"UsageCount"=dword:00000001
"Driver"="C:\\Windows\\System32\\myodbc8w.dll"
"Setup"="C:\\Windows\\System32\\myodbc8S.dll"
"APILevel"="1"
"ConnectFunctions"="YYY"
"DriverODBCVer"="03.80"
"FileUsage"="0"
"SQLLevel"="1"
"CPTimeout"="120"
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers]
"MySQL ODBC 8.0 Unicode Driver"="Installed"
注意:64-bit 系統上 32-bit 驅動註冊在 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ODBC\ODBCINST.INI\,建議用 odbcad32.exe (32-bit: C:\Windows\SysWOW64\odbcad32.exe) 圖形化管理。
odbcad32.exe (對應位數版本)。MyAppDB)localhost 或 IP3306utf8mb4 (推薦)// 使用 DSN
"Provider=MSDASQL;DSN=MyAppDB;"
// 或無 DSN (DSN-less)
"Provider=MSDASQL;Driver={MySQL ODBC 8.0 Unicode Driver};"
"Server=127.0.0.1;Port=3306;Database=testdb;User=root;Password=pwd;Option=3;Charset=utf8mb4;"
TADOConnection / TADOQuery 直接用上述連接字串。BDE Administrator 中設定 Driver = MyODBC。| 現象 | 原因與對策 |
|---|---|
| 「指定的驅動程式無法載入」 | 位數不符 (32-bit 應用載 64-bit 驅動或反之)。用正確版 odbcad32.exe 檢查。 |
| 「Authentication plugin 'caching_sha2_password' not supported | MySQL 8.0+ 預設新插件,舊版驅動不支援。 ① 升級 Connector/ODBC 8.0+ ② 或建立用戶指定 mysql_native_password:CREATE USER 'u'@'%' IDENTIFIED WITH mysql_native_password BY 'pwd'; |
| 中文亂碼 | 連接字串加 Charset=utf8mb4,資料表/欄位亦設 utf8mb4。 |
| 連線逾時 | 防火牆阻擋 3306、MySQL bind-address 設為 0.0.0.0、skip-name-resolve 避免 DNS 延遲。 |
MyODBC (Connector/ODBC) 是 Windows 平台連接 MySQL 最通用、相容性最佳的橋樑。掌握「位數對齊、正確註冊、DSN/DSN-less 連接字串、字符集統一」四要素,即可在任何開發工具中穩定使用 MySQL。