10.4 Microsoft Access迁移

请注意

这个特性是在MySQL Workbench 6.2.0中添加的。

一般信息

Microsoft Windows是必需的,因为Microsoft Access ODBC驱动程序只在Windows上可用。对于目标MySQL服务器,您可以将其放在同一台本地机器上或网络中的其他地方。

准备用于迁移的Microsoft Access数据库

microsoftaccess将关系/外键信息存储在一个名为MSysRelationships.这个表被保护了,即使是Admin用户也不能读,所以如果你试图在没有打开访问权限的情况下迁移它,那么你会得到这样的错误:

[42000] [Microsoft][ODBC Microsoft Access Driver]无法读取记录;没有读取权限'msysobjects'。(-1907) (SQLExecDirectW)

授予Admin角色读权限(使用Microsoft access 2007)的步骤总结如下:

  • 在Microsoft Access中打开数据库

  • 数据库工具丝带,单击Visual Basic打开Visual Basic (VB)控制台。下图显示了此按钮在宏区域中的位置。

    图10.20定位Visual Basic宏数据库工具

    内容在周围的文本中进行描述。

  • 要确认您以“Admin”用户登录,请定位立即面板并输入“?”CurrentUser”和新闻输入.这应该输出“Admin”下的“?”“CurrentUser”(参见下面的图)。

  • 还在立即面板,键入以下命令授予访问权限:

    CurrentProject.Connection.Execute "GRANT SELECT ON MSysRelationships TO Admin"

    图10.21授予管理员对MSysRelationships的SELECT权限

    内容在周围的文本中进行描述。

  • 退出Microsoft Access应用程序

启动MySQL工作台迁移向导

在MySQL工作台主屏幕上,您可以通过单击数据库迁移启动器(),或通过单击数据库然后迁移向导从主菜单。如下图所示,将显示一个新选项卡,显示Migration Wizard的Overview页面。

图10.22迁移概览

内容在周围的文本中进行描述。

设置ODBC驱动程序

要验证是否安装了ODBC驱动程序,请单击开放的ODBC管理员从MySQL Workbench迁移概述页面打开系统ODBC工具。然后,选择司机TAB(见下图)。

图10.23检查ODBC驱动程序的访问支持

内容在周围的文本中进行描述。

重要的

MySQL工作台有一个64位的可执行文件。您使用的ODBC驱动程序必须与您正在使用的MySQL Workbench二进制文件具有相同的架构。如果在迁移过程中你得到一个关于“驱动程序和应用程序之间的架构不匹配”的ODBC错误,说明你安装了错误版本的MySQL工作台。

用户DSN选项卡上,单击添加为数据库文件创建DSN。如下图所示,为northwind数据库示例创建了一个新的数据源。

图10.24添加新的DSN

内容在周围的文本中进行描述。

设置源参数

点击开始迁移从Overview页面跳转到源的选择页面。在这里,您需要提供有关要迁移的Access数据库、要使用的ODBC驱动程序以及Access连接的参数的信息。

打开数据库系统组合框用于支持的rdbms列表,并选择Microsoft Access从列表中。下面还有一个组合框存储连接.它列出了保存的RDBMS连接设置。您可以通过在页面底部标记复选框以及保存的连接的名称来保存连接。

下一个组合框选择连接方法.这次我们要选择ODBC数据源从列表中。这允许您选择已经在系统中配置的预先存在的dsn。

DSN下拉列表将包含您在系统中定义的所有dsn。从列表中选择为要迁移的Access数据库创建的数据库。

默认字符集字段,您可以选择数据库的字符集(参见下图)。如果你的Access版本使用了西文/拉丁字符,你可以不使用默认值cp1252.但是,如果您使用Access的本地化版本,如日文,您必须输入您的Microsoft Office版本所使用的正确字符集,否则数据将被错误地复制。

图10.25选择访问源

内容在周围的文本中进行描述。

最后,单击测试连接检查ODBC连接是否可以建立。如果您输入了正确的参数,那么您应该会看到一条消息,报告连接尝试成功。

设置目标参数

接下来,通过定义连接到MySQL Server实例的参数来设置目标(MySQL)数据库参数。当完成时,单击测试连接验证连接定义。下图显示参数选项卡。

图10.26目标数据库选择

内容在周围的文本中进行描述。

选择迁移对象

接下来,您应该看到所选数据库对象的逆向工程进程。此时,迁移向导正在检索有关所涉及的数据库对象的相关信息(如表名、表列、主键和外键、索引、触发器、视图等)。您将看到一个下一页所示的进度页面。

图10.27逆向工程来源

内容在周围的文本中进行描述。

等待它完成,并验证一切顺利。接下来,源对象显示一个包含已检索并可用于迁移的对象的列表。它看起来与下面的图类似。

图10.28源对象

内容在周围的文本中进行描述。

在前面的示例中,迁移向导发现了源数据库的表和视图对象。默认情况下,只选择表对象进行迁移。

请注意

您也可以选择视图对象,但是您以后还必须提供相应的MySQL等效代码(对它们没有自动迁移可用),所以我们的示例将不检查视图。这同样适用于存储过程、函数和触发器。

点击显示选择准确配置要迁移的对象,如下图所示。

图10.29选择源对象

内容在周围的文本中进行描述。

右侧的对象将被迁移。筛选框可以筛选列表(允许通配符,如上所示)。通过使用箭头按钮,您可以过滤掉您不想迁移的对象。在继续之前,清除筛选器文本框以检查所选对象的完整列表。我们的例子迁移了所有的表对象,所以它们都在对象迁移列表,迁移表对象选中复选框。

审查建议的迁移

此时,迁移向导将选定的对象转换为目标MySQL服务器中的等价对象,并生成创建它们所需的MySQL代码。你可能得等手工编辑步骤显示下图所示的初始页面。

图10.30手动编辑:初始页面

内容在周围的文本中进行描述。

视图组合框更改迁移的数据库对象的显示方式(参见下图)。点击显示代码查看和编辑生成的MySQL代码对应于所选对象。此外,您可以双击对象树中的一行来编辑对象名称,或者双击数据库行来更改其名称。

图10.31手动编辑:所有对象

内容在周围的文本中进行描述。

视图组合框也有列映射选择。如下图所示,它显示了表列,并允许您检查和修复列类型、默认值和其他属性的映射。

图10.32手动编辑:列映射

内容在周围的文本中进行描述。

创建数据库对象

下一个是目标创建选项页面,如下图所示。

图10.33 Target Creation Options

内容在周围的文本中进行描述。

使用目标创建选项来执行目标RDBMS(第二步中的MySQL实例)中生成的代码,或者可以将其转储到SQL脚本文件中。让它保持如图所示,并移到下一页。迁移的SQL代码将在目标MySQL服务器上执行。可在列表中查看进度创建模式页面如下图所示。

图10.34创建模式

内容在周围的文本中进行描述。

模式和对象的创建完成后,可以移动到创建目标结果页面。它显示已创建对象的列表,并包括创建时生成的任何错误。它将类似于下图。

图10.35 Create Target Results

内容在周围的文本中进行描述。

您可以使用右边的代码框编辑迁移代码,并通过单击保存更改应用.如果进行了编辑,您仍然需要用修改后的代码重新创建对象,以便执行更改。这是通过单击来完成的重新创建对象.在本教程中,我们不会更改任何内容,所以保持代码原样,然后继续数据传输设置页面。

将数据传输到MySQL数据库

下一步是将数据从源Access数据库传输到新创建的目标MySQL数据库。数据传输设置页面允许您配置这个过程(见下图)。

图10.36数据传输设置

内容在周围的文本中进行描述。

这里有两组选项。第一个允许您执行实时传输和/或将数据转储到稍后可以执行的批处理文件中。另一组选项允许您更改此过程。

本教程使用本页选项的默认值,如上图所示。接下来,传输数据。此时,相应的进度页面确认正在执行的任务(参见下图)。

图10.37批量数据传输

内容在周围的文本中进行描述。

一旦完成,就进入下一页。您将得到一份报告页,总结整个过程。现在,查看并点击完成关闭向导。

验证

现在,northwind数据库已经成功迁移,您可以查看结果。打开一个与MySQL服务器实例相关联的SQL编辑器,然后查询northwind数据库。例如,执行类似于SELECT * FROM northwind.customers,它填充结果网格,如下图所示。

图10.38验证您的结果

内容在周围的文本中进行描述。