这个特性是在MySQL Workbench 6.2.0中添加的。
Microsoft Windows是必需的,因为Microsoft Access ODBC驱动程序只在Windows上可用。对于目标MySQL服务器,您可以将其放在同一台本地机器上或网络中的其他地方。
microsoftaccess将关系/外键信息存储在一个名为MSysRelationships.这个表被保护了,即使是Admin用户也不能读,所以如果你试图在没有打开访问权限的情况下迁移它,那么你会得到这样的错误:
[42000] [Microsoft][ODBC Microsoft Access Driver]无法读取记录;没有读取权限'msysobjects'。(-1907) (SQLExecDirectW)
授予Admin角色读权限(使用Microsoft access 2007)的步骤总结如下:
在Microsoft Access中打开数据库
从
丝带,单击 打开Visual Basic (VB)控制台。下图显示了此按钮在宏区域中的位置。要确认您以“Admin”用户登录,请定位立即面板并输入“?”CurrentUser”和新闻 .这应该输出“Admin”下的“?”“CurrentUser”(参见下面的图)。
还在立即面板,键入以下命令授予访问权限:
CurrentProject.Connection.Execute "GRANT SELECT ON MSysRelationships TO Admin"
退出Microsoft Access应用程序
在MySQL工作台主屏幕上,您可以通过单击数据库迁移启动器(),或通过单击
然后 从主菜单。如下图所示,将显示一个新选项卡,显示Migration Wizard的Overview页面。要验证是否安装了ODBC驱动程序,请单击司机TAB(见下图)。
从MySQL Workbench迁移概述页面打开系统ODBC工具。然后,选择MySQL工作台有一个64位的可执行文件。您使用的ODBC驱动程序必须与您正在使用的MySQL Workbench二进制文件具有相同的架构。如果在迁移过程中你得到一个关于“驱动程序和应用程序之间的架构不匹配”的ODBC错误,说明你安装了错误版本的MySQL工作台。
在用户DSN选项卡上,单击 为数据库文件创建DSN。如下图所示,为northwind数据库示例创建了一个新的数据源。
点击源的选择页面。在这里,您需要提供有关要迁移的Access数据库、要使用的ODBC驱动程序以及Access连接的参数的信息。
从Overview页面跳转到打开数据库系统组合框用于支持的rdbms列表,并选择Microsoft Access从列表中。下面还有一个组合框存储连接.它列出了保存的RDBMS连接设置。您可以通过在页面底部标记复选框以及保存的连接的名称来保存连接。
下一个组合框选择连接方法.这次我们要选择ODBC数据源从列表中。这允许您选择已经在系统中配置的预先存在的dsn。
的DSN下拉列表将包含您在系统中定义的所有dsn。从列表中选择为要迁移的Access数据库创建的数据库。
在默认字符集字段,您可以选择数据库的字符集(参见下图)。如果你的Access版本使用了西文/拉丁字符,你可以不使用默认值cp1252.但是,如果您使用Access的本地化版本,如日文,您必须输入您的Microsoft Office版本所使用的正确字符集,否则数据将被错误地复制。
最后,单击
检查ODBC连接是否可以建立。如果您输入了正确的参数,那么您应该会看到一条消息,报告连接尝试成功。接下来,您应该看到所选数据库对象的逆向工程进程。此时,迁移向导正在检索有关所涉及的数据库对象的相关信息(如表名、表列、主键和外键、索引、触发器、视图等)。您将看到一个下一页所示的进度页面。
等待它完成,并验证一切顺利。接下来,源对象显示一个包含已检索并可用于迁移的对象的列表。它看起来与下面的图类似。
在前面的示例中,迁移向导发现了源数据库的表和视图对象。默认情况下,只选择表对象进行迁移。
您也可以选择视图对象,但是您以后还必须提供相应的MySQL等效代码(对它们没有自动迁移可用),所以我们的示例将不检查视图。这同样适用于存储过程、函数和触发器。
点击
准确配置要迁移的对象,如下图所示。右侧的对象将被迁移。筛选框可以筛选列表(允许通配符,如上所示)。通过使用箭头按钮,您可以过滤掉您不想迁移的对象。在继续之前,清除筛选器文本框以检查所选对象的完整列表。我们的例子迁移了所有的表对象,所以它们都在对象迁移列表,迁移表对象选中复选框。
此时,迁移向导将选定的对象转换为目标MySQL服务器中的等价对象,并生成创建它们所需的MySQL代码。你可能得等手工编辑步骤显示下图所示的初始页面。
的视图组合框更改迁移的数据库对象的显示方式(参见下图)。点击 查看和编辑生成的MySQL代码对应于所选对象。此外,您可以双击对象树中的一行来编辑对象名称,或者双击数据库行来更改其名称。
的视图组合框也有列映射选择。如下图所示,它显示了表列,并允许您检查和修复列类型、默认值和其他属性的映射。
下一个是目标创建选项页面,如下图所示。
使用目标创建选项来执行目标RDBMS(第二步中的MySQL实例)中生成的代码,或者可以将其转储到SQL脚本文件中。让它保持如图所示,并移到下一页。迁移的SQL代码将在目标MySQL服务器上执行。可在列表中查看进度创建模式页面如下图所示。
模式和对象的创建完成后,可以移动到创建目标结果页面。它显示已创建对象的列表,并包括创建时生成的任何错误。它将类似于下图。
您可以使用右边的代码框编辑迁移代码,并通过单击保存更改数据传输设置页面。
.如果进行了编辑,您仍然需要用修改后的代码重新创建对象,以便执行更改。这是通过单击来完成的 .在本教程中,我们不会更改任何内容,所以保持代码原样,然后继续下一步是将数据从源Access数据库传输到新创建的目标MySQL数据库。数据传输设置页面允许您配置这个过程(见下图)。
这里有两组选项。第一个允许您执行实时传输和/或将数据转储到稍后可以执行的批处理文件中。另一组选项允许您更改此过程。
本教程使用本页选项的默认值,如上图所示。接下来,传输数据。此时,相应的进度页面确认正在执行的任务(参见下图)。
一旦完成,就进入下一页。您将得到一份报告页,总结整个过程。现在,查看并点击完成关闭向导。