首页 > 解决方案 > 将 Microsoft SQL Server 迁移到 MySQL:我找不到文档或修复的奇怪错误,包括“文本太长”

问题描述

我在 SQL Server 中有一个数据库,我正在尝试将其转换为 MySQL 数据库,因此我可以将它托管在 AWS 上并将所有内容移到外部。从这个链接看来,这通常没什么大不了的,尽管该链接似乎并没有从 .bak 文件迁移,而是从正在运行并包含相关数据库的本地 SQL Server 实例迁移。没什么大不了的,我可以处理。

但是,当我实际使用 MySQL Workbench 使用这些步骤进行迁移时,它会进入批量数据传输步骤,然后出现奇怪的错误。

在此处输入图像描述

我收到如下错误:

错误:OptionalyticsCoreDB-ProdUserTokens:插入数据:第 1 行的“令牌”列的数据太长

错误:OptionalyticsCoreDB-ProdUserTokens: 复制 6 行失败

错误:OptionalyticsCoreDB-ProdUserLogs:插入数据:第 1 行的“ActionTaken”列的数据太长错误:OptionalyticsCoreDB-ProdUserLogs: 复制 244 行失败

然而,数据不应该“太长”。这些列是 SQL Server 中的 nvarchar(MAX),它们的数据在指定的行中通常很短,没有接近 nvarchar 的最大值。

像这样这样的链接表明,大约十年前,nvarchar 格式曾经存在错误,但它们已经修复多年了。我已经检查甚至更新并重新启动了我的软件,然后是计算机——我有最新版本的 MySQL 和 MySQL Workbench。发生什么了?

这里有什么问题,如何让我的数据库成功迁移?当然可以从 SQL Server 迁移到 MySQL,对吧?

标签: mysqlsqlsql-servermysql-workbenchdatabase-migration

解决方案


我已经回答了我自己的问题......显然,在翻译 SQL Server nvarchar(MAX) 列时,Workbench 存在某种错误。我将架构迁移输出到脚本并检查它,它将这些列转换为 varchar(0)。将它们全部替换为 TEXT 列后,完成的迁移工作。

令人沮丧的教训。


推荐阅读