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

1、类型转换

SQL ServerMySQL
varchar(max)类似可变字符串text
timestamp(里面有1970以下)dataTime(可以是1900以上)
tinyint(0-255)tinyint(无符号)(在设计表里面字段需要把无符号打钩)
uniqueidentifier(16字节的二进制)可以对应用一个,我用的char
smalldatetime(1900/1/1~2079/6/6)detetime(1000-01-01 -9999-12-31 )
nvarchar可变长度(utf-8)varchr(根据自己业务设置一个长度把)
varchar可变长度(unicode)var的65535不够就用text也可以
ntext可变长度(unicde)longtext
  
  
  
  
  
  

2、数据迁移采用的Navicat Premium,

a)、在MySQL中创建SQLServer对应数据库(例如:assisdata)

b)、选中SQLServer中迁移数据库右键->数据传输->如下图

c)、选择高级

d)、

确定即可开始。

 

 

PS:迁移数据出现问题,

1、{

[Err] [Imp] 1366 - Incorrect string value: '\xF0\x9F\x98\x84' for column 'Content' at row 2

编码集问题,由于emoji表情是4个字节。而urf-8是最多3个字节

 就修改mysql的配置文件

win系统默认安装位置:C:\ProgramData\MySQL\MySQL Server 5.7/my.ini

linux系统默认安装位置:/ect/mysql/my.cnf

a)、修改my.cnf 或 my.ini里面的配置:

[mysqld]

character-set-server=utf8mb4

[mysql]

default-character-set=utf8mb4

修改完成后重启mysql

win的命令
net stop mysql
net start mysql


linux命令
service mysql stop
service 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-255

PS:基本我在迁移得时候就遇到这些问题,如果还有我没遇到得问题,可以留言互相交流学习。毕竟每一个技术都有很多东西值得我们去探讨研究。

 

★★再来一个方法,如果保存表情还是不能转移,采用以下方式

a)、直接选中需要转移得SQLserver 右键-数据传输-->>进入下面页面

b)、在导入得sql打开(如果文件太大最好用软件打开不然卡死哦),在文件开头加一个sql即可。

★★★★★注意:执行添加之前记得在sql里面加入以下得语句(导出sql别开启事务、完整插入、延迟插入等设置)

 

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 将SQL Server中的数据迁移MySQL可以通过以下步骤实现: 1. 将SQL Server中的数据导出为CSV或Excel格式的文件。 2. 在MySQL中创建相应的表结构。 3. 将导出的数据文件导入MySQL中。 4. 验证数据是否正确导入。 需要注意的是,在进行数据迁移时,需要考虑数据类型、字符集等因素,以确保数据的完整性和准确性。同时,还需要注意SQL ServerMySQL之间的差异,例如SQL语法、函数等方面的差异,以避免出现错误。 ### 回答2: 数据迁移是当企业需要更换或升级数据库时,经常遇到的问题。对于企业来说,有时需要把 SQL Server 数据库转移到 MySQL 数据库中。下面我将从数据结构比较、迁移工具选择和迁移前后注意事项三个方面详细介绍 SQL Server 数据迁移MySQL 的具体步骤及注意点。 1. 数据结构比较 在进行数据迁移之前,我们需要先对 SQL ServerMySQL 数据库的数据结构进行比较,以确定目标 MySQL 数据库是否可以容纳 SQL Server 数据库中的全部数据SQL ServerMySQL 之间的区别很大,尤其是在数据类型和枚举上。因此在迁移之前,需要先确定 SQL Server 数据库中所使用的数据类型是否与 MySQL 数据库兼容。 2. 迁移工具选择 与选择其他的数据迁移工具相比,选择可靠的工具可以简化数据迁移过程。例如,如果你想将 SQL Server 数据迁移MySQL,可以使用 MySQL Workbench 数据迁移工具。这个工具可以将 SQL Server 数据库转移为 MySQL 脚本,从而帮助您完成数据迁移的过程。而且,这个工具是免费的,并且易于使用。 3. 迁移前后注意事项SQL Server 数据迁移MySQL 之前,您需要做好以下准备工作: ● 创建与 SQL Server 数据库相应的 MySQL 数据库,并在 MySQL 数据库中创建表。 ● 将 SQL Server 数据库中数据转换为 MySQL 数据库中的数据类型,并将数据存储在临时数据文件中。 ● 在转移之前,检查所有 SQL Server 数据库的约束和约束规则是否在 MySQL 数据库中得到满足。 在迁移期间,您需要注意以下几点: ● 在迁移过程中,要保证源数据SQL Server 的一致性和完整性。 ● 在导入数据之前,确保在 MySQL 数据库中创建了相应的表,并设置正确的列属性。 ● 在进行数据导入时,将导入数据逐步验证,以确保数据的一致性和准确性。 ● 在迁移完成后,请进行数据验证,确保 MySQL 数据库中的数据SQL Server 数据库中的数据没有发生变化,数据完整性得到保证。 综上所述,SQL Server 数据迁移MySQL 的过程需要经过细致的计划和操作,需要注意数据结构比较、迁移工具选择和迁移前后注意事项三个方面的问题,才能顺利完成数据迁移的任务。 ### 回答3: 对于将SQL Server数据迁移MySQL的过程,需要考虑以下几个方面。 1. 数据结构转换:SQL ServerMySQL数据类型存在一定的区别,因此在进行数据迁移之前需要对数据类型进行转换。例如,SQL Server的datetime类型在MySQL中可以转换为timestamp类型。此外,还需要注意区分SQL Server的nvarchar类型和MySQL的varchar类型。 2. 数据迁移方法数据迁移可以通过手动方法进行,即逐个表进行转换和导入,也可以通过数据迁移工具来进行。如果是手动方法,则需要先将SQL Server数据转换为MySQL能够识别的格式,然后将数据导入MySQL中。如果使用数据迁移工具,则可以自动完成数据结构转换和数据导入。 3. 数据安全性:在进行数据迁移过程中需要注意数据的安全性,包括数据完整性和数据准确性。在进行数据结构转换和数据导入之前,需要对数据进行备份和验证,以确保数据迁移后没有数据损失和数据错误。 4. 数据库配置:迁移完成后,需要对MySQL数据库配置进行相应的更改,以使其与SQL Server的配置相同。这包括字符集、存储引擎等配置。 除了以上几个方面,还需要考虑数据迁移的时间和资源消耗。对于较大的数据迁移,可能需要在非工作时间进行,以避免对业务造成影响。此外,还需要考虑服务器资源和网络带宽的使用情况。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值