花了一天时间把MSSQL里的数据导出到MYSQL, 好麻烦,二个数据库都是阿里云买的云服务器。
- 先上阿里云控制面板,备份下MSSQL数据库,下载备份下来,在本地电脑上还原
2.本地MSSQL数据库上执行select * into aaa from order where createtime>='2018-11-12 00:00:00' and createtime<='2018-11-13 00:00:00', 把一天的数据导出到新表aaa中,其中aaa是不存在,存在aaa表的话会报错
3.本地数据库上对aaa表生成脚本,只生成数据,生成的文件中把[]符号替换为空字符串,GO替换为;,insert aaa 替换为insert into order,N'替换为'
4.替换好的SQL保存,先在本地MYSQL上试运行下能不能导入,我用heidisql的加载SQL脚本,可以直接运行的,运行前先点一下工具栏里的那个忽略错误提示继续导入
5.本地测试成功的话把SQL脚本文件用远程桌面存到服务器上,在服务器上运行heidisql,再导入sql脚本就行了
6.从第2步开始重复,一天一天的导入数据,之所以一天一天导出,因为受限于电脑配置的,订单表一天的数据大概是1W左右,导出成inser 语句后大概是20M左右,替换文本什么的都正常,我试过导出二天的数据2W多,结果在保存成sql文件的时候卡死了...
7.之所以以上这些操作不在远程桌面上的数据库里操作,因为远程服务器是Sql server2012数据库的,我发现在上面操作导出订单表数据的时候,那个时间字段是 cast(0x648989ABCDEFD as DateTime) 这样子的,这个在MYSQL上执行不了,本地的数据库是sql server2016, 导出的时候时间字段是 cast('2018-11-13T12:00:00' as DateTime)这样子的,这个在MYSQL上可以直接执行