首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Access 轉 MySQL 完整遷移指南:工具、腳本與兼容性處理

     編輯:程式設計疑難解答

遷移必要性

Access(Jet/ACE 引擎)屬於桌面級文件數據庫,單文件 2GB 限制、併發連接數低、無存儲過程/視圖/觸發器、Web 部署極其困難。MySQL 作為成熟開源關係型數據庫,完美解決上述痛點,是 Web 應用遷移首選。

三種主流遷移方案對比

方案適用場景優點缺點
MySQL Workbench 遷移向導表結構+數據一次性遷移,表數 < 100圖形化、字段類型映射可視化、支持異構源大數據量慢、複雜查詢/視圖需手工調整
Bullzip Access to MySQLWindows 環境、需生成 SQL 腳本免費、生成標準 SQL、支持命令行自動化僅 Windows、大表易超時
ETL 工具生產環境定期同步、數據清洗可視化流程、增量同步、錯誤重試學習成本高、部署複雜

MySQL Workbench 遷移實戰步驟

  1. 安裝 MySQL Workbench(含 Migration Wizard)。
  2. 菜單 Database → Migration Wizard。
  3. Source Selection:選擇 Microsoft Access,瀏覽 .mdb/.accdb 文件,測試連接(需安裝 Access Database Engine)。
  4. Target Selection:填寫 MySQL 服務器地址、用戶、密碼、目標 Schema。
  5. Schema Selection:勾選需遷移的表,關鍵步驟:點擊每個表的「Edit」手動調整字段類型映射(如 Text → VARCHAR(255)、Memo → TEXT、Date/Time → DATETIME、AutoNumber → INT AUTO_INCREMENT、Yes/No → TINYINT(1))。
  6. Data Transfer:選擇「Copy Data」,批次大小建議 1000-5000,啟用「Extended Insert」。
  7. 運行遷移,查看日志修復報錯(常見:主鍵衝突、外鍵順序、保留字衝突)。

遷移後必查兼容性清單

  • 保留字轉義:Access 允許 Order、Group 作為列名,MySQL 需反引號 \`Order\` 或重命名。
  • 日期函數差異:Date() → CURDATE()、Now() → NOW()、Format() → DATE_FORMAT()。
  • 通配符:* → %、? → _。
  • 連接語法:Access 支持 LEFT JOIN ... ON 但舊版語法不同,統一改為標準 ANSI JOIN。
  • 自增主鍵:Access AutoNumber 遷移後需手動設置 AUTO_INCREMENT 並重置種子值。

應用層代碼改造要點

-- 連接字符串變更
-- Access (ODBC)
Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=path\db.accdb;

-- MySQL (JDBC)
jdbc:mysql://host:3306/schema?useSSL=false&serverTimezone=UTC&characterEncoding=utf8

-- 查詢參數化
-- Access: SELECT * FROM Users WHERE Name = ?  (位置參數)
-- MySQL: 同樣支持 ?, 但推薦命名參數 :name (需驅動支持)

無法遷移至 MySQL 的替代方案

若受限於虛擬主機不支持 MySQL,可考慮:

  • SQL Server Express:Windows 主機原生支持,10GB 免費額度,T-SQL 與 Access 相似度高。
  • SQLite:零配置文件數據庫,適合輕量級只讀/低寫入站點,PHP/ASP.NET 直接讀取文件。
  • 雲數據庫:阿里雲 RDS、騰訊雲 CDB、AWS RDS,按量付費,免運維。

參考資源

百度經驗圖文教程:Access 轉 MySQL 步驟詳解

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