MySQL Workbench迁移Access数据时批量传输报错(退出码3221225477)求助
问题描述:
尝试将Microsoft Access数据库迁移至MySQL Workbench,前期步骤正常,但批量数据传输最后一步报错:Determine number of rows to copy: Error getting row count from source tables, wbcopytables exited with code 3221225477 Failed.错误日志如下:
Starting... Prepare information for data copy... Prepare information for data copy done Determine number of rows to copy.... Counting number of rows in tables... wbcopytables.exe --count-only --passwords-from-stdin --odbc-source="DSN=eastern_backend" --source-rdbms-type=MsAccess --source-timeout= --target-timeout=None --table-file=C:\Users\hatim\AppData\Local\Temp\tmputmjo05c --table "tblShippingMethods" 21:45:33 [INF][ copytable]: --table "tblUsers" ...(省略重复表列表) ROW_COUNT::"tblPalletType": 5 FINISHED ERROR: Determine number of rows to copy: Error getting row count from source tables, wbcopytables exited with code 3221225477 Failed Resuming... Failed
解决方法及替代迁移方案
针对当前wbcopytables错误的修复步骤
错误码3221225477对应Windows内存访问冲突,结合日志中已完成行计数仍报错的情况,可尝试以下操作:
- 拆分迁移任务:先移除百万级行的大表(如
tblInvoiceDetails、tblInvDetailsWithInv#),优先迁移小表,再单独处理大表。 - 修复Access数据库:打开原Access文件,执行【数据库工具】→【压缩和修复数据库】,解决潜在的数据库损坏问题。
- 匹配ODBC驱动位数:确保Access ODBC驱动位数与MySQL Workbench一致(64位Workbench用64位驱动,32位则对应32位驱动)。
- 增加超时设置:在迁移向导的高级设置中,给源数据库设置更长的超时时间,避免大表计数耗时过长导致工具崩溃。
- 跳过行计数:部分版本的MySQL Workbench支持跳过行计数步骤,直接进入数据传输阶段,可尝试开启该选项。
替代迁移方案
若上述方法无效,可换用以下更稳定的迁移方式:
方案1:Access导出CSV+MySQL批量导入
- 在Access中选中目标表,右键选择【导出】→【文本文件】,保存为CSV格式(勾选包含字段名)。
- 用MySQL Workbench的迁移向导先完成表结构创建(跳过数据传输步骤)。
- 执行MySQL命令导入CSV:
LOAD DATA INFILE 'C:/path/to/your/table.csv' INTO TABLE `your_table_name` FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 ROWS; -- 跳过CSV表头行
方案2:SQL Server中转迁移
- 使用Access自带的【迁移数据库到SQL Server】工具,先将Access数据同步到SQL Server。
- 再通过MySQL Workbench从SQL Server迁移到MySQL,跨库兼容性更强。
方案3:第三方工具迁移
使用Navicat、DataGrip等数据库管理工具,这类工具提供更稳定的Access到MySQL直接迁移功能,图形化操作更简便。
内容的提问来源于stack exchange,提问作者MKaranjawala
相关产品推荐
相关产品推荐

