MySQL Workbench 內建強大的逆向工程功能,可從現有數據庫自動生成 EER 圖(增強型實體關系圖),直觀展示表結構、外鍵關系、索引等元數據。本文以圖文步驟詳細演示從連接配置到圖表佈局優化的全流程。
前置條件
- 已安裝 MySQL Workbench(Community Edition 免費)。
- 目標數據庫網絡可達,具備
SELECT、SHOW VIEW、PROCESS 等元數據讀取權限的賬號。
操作步驟
1. 啟動逆向工程向導
- 打開 Workbench,首頁「Models」區域點擊 「Create EER Model From Existing Database」(從現有數據庫創建 EER 模型)。
- 或菜單 Database → Reverse Engineer...(Ctrl+R)。
2. 配置/選擇存儲連接
- 彈出「Stored Connection」下拉框,點擊 「Manage Stored Connections...」 管理連接。
- 點擊 「New」 創建連接,填寫:
- Connection Name:自定義名稱(如 prod_order_db)。
- Connection Method:Standard (TCP/IP) / Local Socket / SSH Tunnel(跳板機場景)。
- Hostname / Port:數據庫地址端口。
- Username / Password:讀取權限賬號,建議勾選「Save Password in Vault」。
- Default Schema:可預選默認庫,亦可留空後續選擇。
- 點擊 「Test Connection」 驗證連通性,成功後 「OK」 保存。
- 返回向導,在「Stored Connection」選擇剛創建的連接,點擊 「Next」。
3. 選擇目標 Schema(數據庫)
- 向導列出該實例下所有 Schema,勾選需導出的庫(支持多選)。
- 點擊 「Next」 開始元數據讀取(大庫可能耗時較久)。
4. 選擇導入對象
- 默認全選 Tables、Views、Routines、Groups。按需保留,通常 Tables + Foreign Keys 即可。
- 點擊 「Execute」 開始逆向,完成後 「Next」 → 「Finish」。
5. 畫布佈局優化(關鍵步驟)
逆向生成的圖表所有表默認堆疊在原點 (0,0),完全重疊不可讀,必須手動佈局:
- 自動佈局:菜單 Arrange → Autolayout(或工具欄圖標),算法自動分散節點,適合中小型模型。
- 手動拖拽:按業務域分組拖拽(用戶域、訂單域、商品域...),利用對齊網格(View → Grid → Snap to Grid)美化。
- 分層/分頁:大模型建議創建多個 EER Diagram 分頁(右鍵 Diagram 區域 → Create Diagram),每頁聚焦一個業務域。
- 關系線優化:選中關系線,右鍵「Routing」選擇 Orthogonal(正交)、Direct(直線),減少交叉。
6. 導出與分享
- 圖片導出:File → Export → Export as PNG/PDF/PS/SVG,可指定 DPI、頁面大小。
- 模型文件保存:File → Save Model 保存
.mwb 文件,含完整元數據與佈局,便於團隊協作迭代。
- SQL 腳本生成:File → Export → Forward Engineer SQL CREATE Script 可從模型反向生成建表 SQL。
進階技巧
| 需求 | 操作 |
| 只展示核心表及關系 | 圖層面板(Layers)隱藏非核心表,或刪除圖中節點(不影響模型元數據) |
| 顯示索引/觸發器/分區信息 | 右鍵表節點 → Table Properties → 查看 Details 標籤;或 Model → Model Options → Diagram 勾選 Show Indexes 等 |
| 標註邏輯名/備註 | 模型層面編輯 Table/Column 的 Comments,圖上可選擇顯示 |
| 版本控制 | .mwb 為 XML 格式,可納入 Git 管理,Diff 可見結構變更 |
常見問題
- 連接超時:檢查防火牆/安全組、MySQL
bind-address、SSH 隧道配置。
- 權限不足:授予
GRANT SELECT, SHOW VIEW, PROCESS ON *.* TO 'wb_user'@'%';
- 大庫逆向卡死:分庫逆向、或僅導入表結構(取消 Views/Routines 勾選)、增加 Workbench 內存(
-Xmx2048m)。
- 外鍵未顯示:確認表引擎為 InnoDB 且確有外鍵約束;MyISAM 不支持外鍵。
總結
MySQL Workbench 逆向生成 ER 圖核心流程:建連接 → 選 Schema → 逆向執行 → 自動/手動佈局 → 導出分享。佈局優化是從「可用」到「好用」的關鍵,建議按業務域分頁、善用自動佈局後微調。將 .mwb 納入版本控制,讓數據庫設計文檔與代碼同步演進。