如何将Access MDB格式数据库导入MySQL(utf8_general_ci)?

时间:2015-01-31 11:17:59

标签: mysql sql ms-access database-migration

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

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

2 - 与MS Access相同的故事。我已经用它"导出到ODBC"功能,并没有看到任何更改目标表排序规则的选项,因此单词就像这样????

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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

然后将表从Access导出到MySQL。

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

  • 创建一个使用utf8字符集
  • 的临时MySQL数据库
  • 将表从Access导出到临时数据库,然后
  • 将表从临时数据库复制/移动到主数据库。