如何使用 MySQL Workbench 自动生成 ER 图、同步更新远程数据库 - MySQL Workbench 使用教程

HiJiangChuan · · 1662 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

![如何使用 MySQL Workbench 自动生成 ER 图、同步更新远程数据库 - MySQL Workbench 使用教程](https://kalacloud.com/static/cf8791bf053a13d36038dcb97bc78daf/ef245/head.jpg) MySQL Workbench 作为 MySQL 官方出品的数据库 GUI 管理工具,它的强大是其他免费管理工具无法匹敌的。特别是使用 MySQL Workbench 设计数据库,创建及同步 ER 图(实体关系图)的功能甚是强大。 MySQL Workbench 不仅可以直接在软件中设计数据库 ER 实体关系图,而且还可以直接通过这个实体关系图,自动创建 MySQL 数据库(正向工程),也可以反过来,通过已有的 MySQL 数据库,生成 ER 图(逆向工程),当然,更厉害的地方是,可以在 MySQL ER 图上直接修改,MySQL 数据库会自动同步更新(模式同步)。 本教程将详细讲解如何使用 MySQL Workbench 创建 ER 图及具体操作步骤。 如果你是刚接触 MySQL Workbench 的新用户。推荐先学习: 1.[如何使用 Workbench 远程连接到 MySQL 服务器](https://kalacloud.com/blog/how-to-connect-to-a-mysql-server-remotely-with-mysql-workbench/?utm_medium=inside) 2.[如何使用 Workbench 操作 MySQL 数据库中文指南](https://kalacloud.com/blog/mysql-workbench-tutorial/?utm_medium=inside) 在本教程中你将学习到 1. 如何生成 MySQL 数据库 ER 图(逆向工程) 2.如何使用 Workbench 模式同步功能同步本地 ER 图与远程 MySQL 数据库 3.导出 ER 图、协同工作 ![使用 MySQL Workbench 将数据库 SQL 代码转化成 数据库 ER 关系图。](https://kalacloud.com/static/e4508e7e1d5a9fdc19ab7c85ea6f4531/ef245/01-sql-sync-er.jpg) 使用 MySQL Workbench 将数据库 SQL 代码转化成 数据库 ER 关系图。 ## 一. 如何生成 MySQL 数据库 ER 图(逆向工程) ![准备连接远程数据库](https://kalacloud.com/static/228a540f9a92d1f37b3c3858e36260b8/e5166/02-reverse-engineer.jpg) 我们在 MySQL Workbench 主界面的菜单栏选择「Database」→ 「Reverse Engineer...」 ![配置连接 MySQL 信息](https://kalacloud.com/static/a6024b1feac0821b1e91bcb0daa0ccb2/e5166/03-0-connect.jpg) 连接需要通过 MySQL Workbench 直接生成 ER 图的数据库。(有关如何远程连接的教程可看我们前一篇教程:[如何使用 Workbench 远程连接到 MySQL](https://kalacloud.com/blog/how-to-connect-to-a-mysql-server-remotely-with-mysql-workbench/?utm_medium=inside)) ![配置连接MySQL数据库](https://kalacloud.com/static/acb21341ab2c7c7bcc5849c206d4bd73/e5166/03-1-connect.jpg) 点击「Continue」完成数据库连接。 ![选择需要创建 ER 图的数据库](https://kalacloud.com/static/e7acad27ef911e87d20df6a6e65097fb/e5166/03-2-select-database.jpg) 本教程演示的是连接到卡拉云([kalacloud.com](http://kalacloud.com/))的 MySQL 测试服务器,各位可根据自己需求,选择需要创建 ER 图的数据库。 ![选择需要在 ER 图中显示的表](https://kalacloud.com/static/f0ec643084aa1b2fd4ed067bb37bf3e1/e5166/03-3-select-objects.jpg) 这里大家根据自己的需求选择需要在 ER 图中显示的表。 ![ER 图生成成功](https://kalacloud.com/static/af47af3d5bd060d5e022fc530dfecf0e/e5166/03-4-successfully.jpg) 到这里,我们已经可以看到, MySQL Workbench 将我们选中的数据库生成了对应的 ER 图。 ![创建 ER 图](https://kalacloud.com/static/f8fb75f69361ec0ca17f0d1bdd25294c/e5166/04-0-create-er.jpg) 这是一个简单的 CRM 管理系统的数据库 DEMO。当然,不论你的数据库结构多么错综复杂,Workbench 都能轻松搞定。 更厉害的是,Workbench 有模式同步功能,即我们在本地修改了 ER 图后,Workbench 会把我们修改的部分同步到物理数据库中,这是在免费数据库 GUI 管理工具当中,是非常少见的杀手锏级的功能。 扩展阅读:《[如何配置开启 MySQL 远程连接,阿里云允许外网连接教程](https://kalacloud.com/blog/how-to-allow-remote-access-to-mysql/)》 ## 二. 如何使用模式同步功能,同步本地 ER 图与远程 MySQL 数据库 模式同步是指 MySQL Workbench 会比较 ERD 和 物理数据库中模式结构的差异,针对这个差异进行双向同步。也就是说,当我们在 ER 图上创建一个新表并配置好表属性后,我们的物理数据库中也将同步更新。 ### 1.在 ER 图中创建新表 ![在 ER 图中创建新表](https://kalacloud.com/static/381184bd5dc2cdcdbb1b6737fbf18098/e5166/04-1-er-change.jpg) 1.点击创建表功能,进入数据库表配置页。 2.我们可以直接在 ER 图上创建一个新表 `new_table_kalacloud`,然后对这个新表进行基本的配置。 3.Workbench 会在画布上生成一个对应的数据库表。 这时候,创建的表仅显示在本地画布上,下面我们要把这个新建表同步到远端 MySQL 服务器上。 ### 2.将更新后的 ER 图同步至物理数据库 ![将更新后的 ER 图同步至物理数据库](https://kalacloud.com/static/4ccc5b3587bfd80961ec79e2ecc4606b/e5166/04-2-sync.jpg) 接着我们将刚刚在 ER 图上画的 `new_table_kalacloud` 这个表同步到物理数据库中。 选择「Database」→「Synchronize Model」 进入同步配置页。 ![Synchronize Model 进入同步配置页](https://kalacloud.com/static/de9ca77dfe406212a0138ba3cbfb7465/e5166/04-3-connect-mysql.jpg) 连接需要同步的远程数据库服务器(如果这里你不会配置,请看我们之前的教程《[Workbench 远程连接到 MySQL](https://kalacloud.com/blog/how-to-connect-to-a-mysql-server-remotely-with-mysql-workbench/?utm_medium=inside)》) ![连接到远程 MySQL 服务器](https://kalacloud.com/static/50e5c60f08c13734b850f9f97a825a90/e5166/04-4-select-database.jpg) 连接到远程 MySQL 服务器后,选择需要同步的远端数据库。 ![选择数据同步方向](https://kalacloud.com/static/f1ccdc7d8fb9ca45356a4590d7af5f74/e5166/04-5-sync.jpg) Workbench 会根据两边的数据提示你数据同步方向,当然你也可以选择反向同步或者忽略差异。 ![Workbench 会帮你写好 SQL 代码](https://kalacloud.com/static/d31a5c71a9b2fdc86c6023f30a6ae5a1/e5166/04-6-sync-sql.jpg) 一切确认后,Workbench 会帮你写好 SQL 代码,检查无误后就可以提交了。 ![本地 ER 图和远程 MySQL 数据库,数据结构保持一致](https://kalacloud.com/static/3a707a68f035a7e2d213c66028deaa19/e5166/04-7-sync-successfully.jpg) 同步成功,此时本地 ER 图和远程 MySQL 数据库,数据结构保持一致。 扩展阅读:《[如何在 MySQL 中创建、查看、删除触发器](https://kalacloud.com/blog/how-to-manage-and-use-mysql-database-triggers/),触发器的六种用法》 ## 三. 导出 ER 图与远程协同工作 Workbench 提供多种格式的导出方式,不仅可以导出数据库模型(*.mwb)也可以导出可视化的图片文件(pdf、png)等。 如果使用 `*.mwb` 格式保存,可将文件共享给需要协同的同事,他可在你的基础上继续对数据库进行编辑,以及 sync 修改数据库结构。 当然我们也可以直接保存为 png 格式,不论是自己查看还是共享给协同工作的同事,都是非常好的数据库查询资料。 ![导出的workbench数据库ER图](https://kalacloud.com/static/2e8d8a6dfe6f685bfd72571cc9acb990/e5166/05-export-mwb-workbench.jpg) 直接导出 PNG 格式 本教程导出范例: - [MySQL示例导出的 mwb 文件](https://kalacloud.com/23cd59a96a2bb8d5e8b2c4b76a579cbf/kalacloud-com-database-export.mwb) - [MySQL示例导出的 PNG 文件](https://kalacloud.com/48168d2fc34eacbacbf1e52307254e98/kalacloud-com-database-export.zip) 扩展阅读:《[如何在 MySQL 中导入导出数据库、CSV、Excel](https://kalacloud.com/blog/how-to-import-and-export-databases-excel-csv-in-mysql-or-mariadb-from-terminal/)》 ## 四. 卡拉云 - 新一代低代码开发工具 MySQL Workbench 为我们提供了管理 MySQL 的图形界面管理工具,可以在本地轻松管理远程数据库,但 Workbench 只能做较底层的数据库操作。对于「构建在数据库之上,需要前端定制开发」的需求,并不适用。如果你有自己对数据库增删改查的工作流,推荐一下卡拉云。 卡拉云是新一代低代码开发工具,免安装部署,可一键接入包括 MySQL 在内的常见数据库及 API。不仅可以完成 Workbench 所有功能,还可根据自己的工作流,定制开发。无需繁琐的前端开发,只需要简单拖拽,即可快速搭建企业内部工具。**数月的开发工作量,使用卡拉云后可缩减至数天。** ![卡拉云可一键接入常见的数据库及 API](https://www.kalacloud.com/static/18822b2a23183deb7d11dd484a7f65aa/71c1d/97-kalacloud-sql.png) 卡拉云可一键接入常见的数据库及 API 卡拉云可根据公司工作流需求,轻松搭建数据看板或其他内部工具,并且可一键分享给组内的小伙伴。 ![使用卡拉云快速搭建企业内部工具](https://kalacloud.com/5400a60956e16d655e0297c5d6e5a8d2/98-kalacloud-gif.gif) 下图为使用卡拉云在 5 分钟内搭建的「[优惠券发放核销](https://kalacloud.com/blog/coupon-system-design/)」后台,仅需要简单拖拽即可快速生成前端组件,只要会写 SQL,便可搭建一套趁手的数据库工具。**欢迎[试用卡拉云](https://kalacloud.com/)。** ![使用卡拉云搭建「优惠券发放核销」后台](https://kalacloud.com/static/34625d3adaea4ed250ff3f05b863e47c/cca35/99-kalacloud-sql-index.png) ## 总结 在本教程中,我们讲解了 MySQL Workbench 操作 MySQL 数据库的基础操作。更多数据库相关教程可访问 [卡拉云](https://kalacloud.com/) 查看。 有关 MySQL 教程,可继续拓展学习: - [MySQL 时间戳用什么类型 - MySQL 时间函数详解](https://kalacloud.com/blog/difference-between-mysql-datetime-and-timestamp-datatypes/) - [MySQL 中如何实现 BLOB 数据类型的存取,BLOB 有哪些应用场景?](https://kalacloud.com/blog/how-to-use-the-mysql-blob-data-type-to-store-images-with-php-or-kalacloud/) - [如何在 MySQL / MariaDB 中跳过多张表导出或指定多张表导出备份](https://kalacloud.com/blog/how-to-dump-database-and-ignore-or-specific-some-tables-with-mysqldump-in-mysql/) - [如何将 MySQL / MariaDB 的查询结果保存到文件](https://kalacloud.com/blog/how-to-save-mysql-mariadb-query-output-to-a-file/) - [MySQL 分组查询实战 如何查询每组最第一条、最后一条记录,单多字段查询、分组筛选、最大小值排序](https://kalacloud.com/blog/how-to-group-by-find-first-and-last-record-in-mysql/)

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1662 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传