首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL Workbench 逆向工程導出數據庫 ER 關系圖完整教程

     編輯:MySQL 資料庫相關知識

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 納入版本控制,讓數據庫設計文檔與代碼同步演進。

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