SQLServer数据迁移为MySQL注意事项及导入方法、出错解决

SQLServer数据迁移为MySQL注意事项及导入方法、出错解决

2023年7月13日发(作者:)

SQLServer数据迁移为MySQL注意事项及导⼊⽅法、出错解决1、类型转换SQL Servervarchar(max)类似可变字符串timestamp(⾥⾯有1970以下)MySQLtextdataTime(可以是1900以上)tinyint(⽆符号)(在设计表⾥⾯字段需要把⽆符号打钩)可以对应⽤⼀个,我⽤的chardetetime(1000-01-01 -9999-12-31 )varchr(根据⾃⼰业务设置⼀个长度把)var的65535不够就⽤text也可以longtext

tinyint(0-255)uniqueidentifier(16字节的⼆进制)smalldatetime(1900/1/1~2079/6/6)nvarchar可变长度(utf-8)varchar可变长度(unicode)ntext可变长度(unicde)

2、数据迁移采⽤的Navicat Premium,a)、在MySQL中创建SQLServer对应数据库(例如:assisdata)b)、选中SQLServer中迁移数据库右键->数据传输->如下图c)、选择⾼级d)、确定即可开始。

PS:迁移数据出现问题,1、{[Err] [Imp] 1366 - Incorrect string value: 'xF0x9Fx98x84' for column 'Content' at row 2}

编码集问题,由于emoji表情是4个字节。⽽urf-8是最多3个字节 就修改mysql的配置⽂件win系统默认安装位置:C:ProgramDataMySQLMySQL Server 5.7/ux系统默认安装位置:/ect/mysql/)、修改 或 ⾥⾯的配置:[mysqld]character-set-server=utf8mb4[mysql]default-character-set=utf8mb4修改完成后重启mysqlwin的命令net stop mysqlnet start mysqllinux命令service mysql stopservice mysql start

##如果win这个命令不可以,就可以直接进⼊计算机管理-本地服务进⾏关闭开启

b)、运⾏下⾯语句 把表修改为utf8mb4 字段也要改的哦alter table 表名字 convert to character set utf8mb4 collate utf8mb4_bin;查看是否配置成功:show variables like '%character%';2、{迁移表失败,未创建}

a)、SQLServer中表有2个主键,那么迁移得时候回出现表创建失败,所以这⾥迁移就别迁移主键。到时候⼿动创建主键。记得主键都是有长度限制得,例如varchar主键不能超过960得长度等等b)、3、{迁移thnyint字段时 部分数据失败}a)、原因是thnyint 在sqlserver中是0-255范围。⽽迁移得时候mysql得thnyint默认字段是-127~128范围,所以需要在字段中把⽆符号勾选就可以了,因为mysql中得thnyint⽆符号范围是0-255PS:基本我在迁移得时候就遇到这些问题,如果还有我没遇到得问题,可以留⾔互相交流学习。毕竟每⼀个技术都有很多东西值得我们去探讨研究。

★★再来⼀个⽅法,如果保存表情还是不能转移,采⽤以下⽅式a)、直接选中需要转移得SQLserver 右键-数据传输-->>进⼊下⾯页⾯b)、在导⼊得sql打开(如果⽂件太⼤最好⽤软件打开不然卡死哦),在⽂件开头加⼀个sql即可。★★★★★注意:执⾏添加之前记得在sql⾥⾯加⼊以下得语句(导出sql别开启事务、完整插⼊、延迟插⼊等设置)

按照这个来做得话基本可以完美转移(如果真的不⾏就换个软件吧不⽤Navicat Premium,⽤sqllog等完善的⼯具,有的时候⼯具在拿到数据解析的时候就没解析好也可能哈)

发布者:admin,转转请注明出处:http://www.yc00.com/web/1689247009a225643.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信