用SQLyog和NativeSQL将数据从sqlserver导入到mysql

本文详细介绍了一种从SQLServer迁移数据库至MySQL的有效方法。首先,需将SQLServer的.bak文件导入至同一环境下的SQLServer,然后通过SQLyog或NativeSQL工具,将数据从SQLServer导出并导入至MySQL。文章还提供了检查迁移前后表数量的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公司的数据库要从sqlserver换到mysql,首先要选一台合适的服务器,给了一份用现在sqlserver中导出的全部数据,让我们用这些数据去测试。


刚开始我以为可以将sqlserver导出的.bak直接导入mysql,试了多次之后不行,参考了别的方法:.bk导入sqlserver,sqlserver导入mysql。

第一步,将.bak导入到sqlserver:

      注意:这个地方选”还原数据库“而不是导入,而且这时不能建数据库。




目标数据库中输入要导入的数据库名,选择源设备,也就是.bak文件,确定就可以。如果表太多,会显示”查看对象资源管理全部信息“,这需要装个sp1,。



数据导入sqlserver后就可以想办法导入mysql了,我试了两个工具,一个是SQLyog,一个是NativeSQL,这里都介绍一下。

SQLyog:



先建立一个数据库,右键选择导入外部数据。



选择”开始新工作“ -> 下一步。




选择 ”建立新的DSN“。


继续下一步。



这个地方选择 SQL Server 而不是mysql。



单击浏览,选择保存路径,保存文件后缀为dsn。下一步 -> 完成。


描述 随便写,由于我的sqlserver在本地,所以是localhost。下一步。




类似于sqlserver管理器的登录。



选择默认数据库。下一步 -> 完成



点击"测试数据源"看能不能连上。



连接成功。




返回到前面的界面了,这时再选择你刚才保存的那个dsn文件,下一步。




填写mysql的相关信息。下一步。



选择”从数据源拷贝表“,下一步。




下一步一直下去就可以了,可以看看某个表的结构。



NativeSQL也就大同小异。



选择导入向导。



选择ODBC,下一步。




选择for SQL Server,这个地方和SQLyog不同。



之后就和SQLyog大同小异了。



下一步一直点下去。




这里可以看表的结构。


最后,可以看看用查看表的个数来看表是否全部导入成功。

sqlserver中,

查看表个数:

SELECT COUNT(*) FROM sysobjects WHERE (xtype = 'U')


查看视图数:

select count(1) from sysobjects where xtype='V'


查看存储过程数:

select count(1) from sysobjects where xtype='P'


xtype的可选项有

C = CHECK 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
L = 日志
FN = 标量函数
IF = 内嵌表函数
P = 存储过程
PK = PRIMARY KEY 约束(类型是 K)
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
UQ = UNIQUE 约束(类型是 K)
V = 视图
X = 扩展存储过程



再在mysql中查看表个数:

SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'LearningReport_de';

当然,这数据时从sqlserver中导入的,也就是仅仅导入了数据,存储过程、函数等全都没用




版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://my.oschina.net/meiqizhang/blog/524521

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值