如何将Access MDB格式数据库导入MySQL(utf8\u general\u ci)?

如何将Access MDB格式数据库导入MySQL(utf8\u general\u ci)?,mysql,sql,ms-access,database-migration,Mysql,Sql,Ms Access,Database Migration,我看过一些关于这个问题的话题,但是没有一个免费的解决方案能与utf8\u general\u ci一起使用。例如,当文件中有阿拉伯语单词时,我们需要utf8\u general\u ci 1-我尝试过MySQL WorkBench,但没有看到任何更改目标表排序规则的选项,它是默认的latin1_swedish_ci。所以阿拉伯语单词是这样的>äåí207; 2-与MS Access的情况相同。我使用了它的导出到ODBC功能,没有看到任何更改目标表排序规则的选项,所以单词是这样的 3-我尝试过这个

我看过一些关于这个问题的话题,但是没有一个免费的解决方案能与utf8\u general\u ci一起使用。例如,当文件中有阿拉伯语单词时,我们需要utf8\u general\u ci

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

2-与MS Access的情况相同。我使用了它的导出到ODBC功能,没有看到任何更改目标表排序规则的选项,所以单词是这样的

3-我尝试过这个已知的工具,但不幸的是,它在迁移方式开始时崩溃,因为我的.mdb文件超过1 GB。也许有工具可以将mdb文件分解为5个或更多部分

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


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

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

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

要使用utf8字符集创建表,可以使用更改数据库的默认字符集

ALTER DATABASE`databasename`默认字符集utf8校对utf8\U常规\U ci 然后将表从Access导出到MySQL

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

创建一个使用utf8字符集的临时MySQL数据库, 将表从Access导出到临时数据库中,然后 将表从临时数据库复制/移动到主数据库。
无法评论排序问题,但有一些问题:1。首先,你说访问数据库的大小是1GB。它压实了吗?Access的哪个版本?注意:在尝试压缩之前,请先备份。Access DB的结构是否适合将某些表导出到较小的MDB文件中,使用您提到的工具将它们导出到MySql并将它们全部放回MySql中?谢谢,已解决。我已经更改了目标数据库默认排序规则,并再次尝试使用access导出。是的,正如我在以这种方式解决问题之前所说的,谢谢您。不客气。如果你能回答这个问题,那么对其他面临同样问题的人会更有帮助。