如何导入一个Access MDB格式的数据库到MySQL (utf8_general_ci)?

How to import an Access MDB format database to MySQL (utf8_general_ci)?

我看过一些关于此问题的主题,但 none 的免费解决方案适用于 utf8_general_ci。例如,当我们在文件中有阿拉伯语单词时,我们需要 utf8_general_ci

1 - 我已尝试 "MySQL WorkBench",但我没有看到任何更改目标 table 排序规则的选项,这是默认排序规则 (latin1_swedish_ci)。所以阿拉伯语单词是这样的 > äÇåíÏ

2 - 与 MS Access 的情况相同。我已经使用了它的 "export to ODBC" 功能,但没有看到任何更改目标 table 排序规则的选项,所以文字是这样的 ????.

3- 我已经尝试过这个已知的工具,bullzip access to mysql migrate 但不幸的是它在迁移开始时崩溃,因为我的 .mdb 文件超过 1 GB。也许有将 mdb 文件分成 5 个或更多部分的工具??

4 - 不幸的是,ESF 数据库迁移工具包的试用版在所有文本字段的开头添加了字符 "T",我不能为此支付 219 美元。

有人知道这个问题的免费解决方案吗?

将 table 导出到 ODBC 数据源时,Access 发出 CREATE TABLE 语句,其中仅包含 table 名称、列名称和列类型。因此 table 的字符集和排序规则将是该数据库的默认值。

对于 MySQL,如果数据库的默认字符集是 latin1,那么将使用 latin1 字符集创建 table。然后,当 Access 尝试将 INSERT Unicode 字符放入其中时,它们将被替换为 MySQL table.

中的 ? 个字符

要使用 utf8 字符集创建 table,您可以使用

更改数据库的默认字符集
ALTER DATABASE `databasename` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

然后将 table 从 Access 导出到 MySQL。

如果您无法更改数据库的默认字符集,那么另一个选择是

  • 创建一个使用 utf8 字符集
  • 的临时 MySQL 数据库
  • 从Access中导出table到临时数据库,然后
  • copy/move table 从临时数据库到主数据库。