如何把sqlserver数据迁移到mysql数据库及需要注意事项

作者&投稿:秘乐 (若有异议请与网页底部的电邮联系)
如何把sqlserver数据迁移到mysql数据库及需要注意事项~

以下有几款迁移工具的对比,可以参考,比较推荐DB2DB.
软件易用性主要是指软件在导入前的配置是否容易。由于很多软件设计是面向程序员而非一般的数据库管理人员、甚至是普通的应用程序实施人员,而这一类人员很多时候并没有数据源配置经验。因为一些使用 ODBC 或者 ADO 进行配置的程序往往会让这类用户造成困扰(主要是不知道应该选择什么类型的数据库驱动程序)。下面让我们看看四个工具的设计界面:
>>>>
1、SQLyog
SQLyog 使用的是古老的 ODBC 连接,但对于新一代的程序来说,这种方式的非常的不熟悉并且不容易使用,并且必须要求本机安装好相应的数据库的 ODBC 驱动程序(SQL Server 一般自带好)。
>>>>
2、Navicat Premium
NavicatPremium是四个应用工具中设计最不人性化的一个:从上图怎么也想像不到要点按那个小按钮来添加一个新的连接,并且这个连接设置不会保存,每次导入时都必须重新设置。NavicatPremium使用的是比 ODBC 稍先进的 ADO 设置方式(199X年代的产物),但使用上依然是针对老一代的程序员。
>>>>
3、Mss2sql
Mss2sql 是最容易在百度上搜索出来的工具,原因之一是它出现的时间较早。

Mss2sql由于是很有针对性的从 SQLServer 迁移到 MySQL,因为界面使用了操作向导设计,使用非常容易。同时在设置的过程中,有非常多的选项进行细节调整,可以感觉到软件经过了相当长一段时间的使用渐渐完善出来的。
>>>>
4、DB2DB



DB2DB 由于是由国人开发,因此无论是界面还是提示信息,都是全程汉字。另外,由于 DB2DB 在功能上很有针对性,因为界面设计一目了然和易使用。和 mss2sql 一样, DB2DB 提供了非常多的选项供用户进行选择和设置。

三、处理速度和内存占用评测
在本评测前,本人的一位资深同事曾经从网上下载了某款迁移软件,把一个大约2500万记录数的数据表转送到阿里云 MySQL,结果经过了三天三夜(好在其中两天是星期六和星期日两个休息日)都未能迁移过来。因此这一次需要对这四个工具的处理速度作一个详细的测试。
考虑到从 SQL Server 迁移到 MySQL 会出现两种不同的场景:
从 SQL Server 迁移到本地 MySQL 进行代码测试和修改;
从 SQL Server 迁移到云端 MySQL 数据库正式上线使用;
以下为测试过程中的截图:
>>>>
1、SQLyog

请点击输入图片描述
>>>>
2、Navicat Premium

请点击输入图片描述

请点击输入图片描述
注意:我们在测试 Navicat Premium 迁移到 MySQL 时发现,对于 SQL Server 的 Money 类型支持不好(不排除还有其它的数据类型支持不好)。Money 类型字段默认的小数位长度为 255,使得无法创建数据表导致整个测试无法成功,需要我们逐张表进行表结构修改才能完成测试过程。
Navicat Premium 的处理速度属于中等,不算快也不算慢,但 CPU 占用还有内存占用都处于高位水平。不过以现在的电脑硬件水平来说,还是可以接受。但 CPU 占用率太高,将使得数据在导入的过程中,服务器不能用于其它用途。
>>>>
3、Mss2sql
Mss2sql 并没有提供计时器,因此我们使用人工计时的方法,整个过程处理完毕大于是 726 秒。Mss2sql 的 CPU 占用率相对其它工具来说较高,但仍属于可以接受的范围之内。
>>>>
4、DB2DB

请点击输入图片描述
DB2DB 同样迁移 300万数据时,仅仅使用了 2 分 44 秒,这个速度相当惊人。不过最后的结果出现一个 BUG,就是提示了转换成功,但后面的进度条却没有走完(在后面的数据完整性评测中,我们验证了数据其实是已经全部处理完毕了)。

以下有几款迁移工具的对比,可以参考,比较推荐DB2DB.
软件易用性主要是指软件在导入前的配置是否容易。由于很多软件设计是面向程序员而非一般的数据库管理人员、甚至是普通的应用程序实施人员,而这一类人员很多时候并没有数据源配置经验。因为一些使用 ODBC 或者 ADO 进行配置的程序往往会让这类用户造成困扰(主要是不知道应该选择什么类型的数据库驱动程序)。下面让我们看看四个工具的设计界面:
>>>>
1、SQLyog
SQLyog 使用的是古老的 ODBC 连接,但对于新一代的程序来说,这种方式的非常的不熟悉并且不容易使用,并且必须要求本机安装好相应的数据库的 ODBC 驱动程序(SQL Server 一般自带好)。
>>>>
2、Navicat Premium
NavicatPremium是四个应用工具中设计最不人性化的一个:从上图怎么也想像不到要点按那个小按钮来添加一个新的连接,并且这个连接设置不会保存,每次导入时都必须重新设置。NavicatPremium使用的是比 ODBC 稍先进的 ADO 设置方式(199X年代的产物),但使用上依然是针对老一代的程序员。
>>>>
3、Mss2sql
Mss2sql 是最容易在百度上搜索出来的工具,原因之一是它出现的时间较早。

Mss2sql由于是很有针对性的从 SQLServer 迁移到 MySQL,因为界面使用了操作向导设计,使用非常容易。同时在设置的过程中,有非常多的选项进行细节调整,可以感觉到软件经过了相当长一段时间的使用渐渐完善出来的。
>>>>
4、DB2DB



DB2DB 由于是由国人开发,因此无论是界面还是提示信息,都是全程汉字。另外,由于 DB2DB 在功能上很有针对性,因为界面设计一目了然和易使用。和 mss2sql 一样, DB2DB 提供了非常多的选项供用户进行选择和设置。

三、处理速度和内存占用评测
在本评测前,本人的一位资深同事曾经从网上下载了某款迁移软件,把一个大约2500万记录数的数据表转送到阿里云 MySQL,结果经过了三天三夜(好在其中两天是星期六和星期日两个休息日)都未能迁移过来。因此这一次需要对这四个工具的处理速度作一个详细的测试。
考虑到从 SQL Server 迁移到 MySQL 会出现两种不同的场景:
从 SQL Server 迁移到本地 MySQL 进行代码测试和修改;
从 SQL Server 迁移到云端 MySQL 数据库正式上线使用;
以下为测试过程中的截图:
>>>>
1、SQLyog

请点击输入图片描述
>>>>
2、Navicat Premium

请点击输入图片描述

请点击输入图片描述
注意:我们在测试 Navicat Premium 迁移到 MySQL 时发现,对于 SQL Server 的 Money 类型支持不好(不排除还有其它的数据类型支持不好)。Money 类型字段默认的小数位长度为 255,使得无法创建数据表导致整个测试无法成功,需要我们逐张表进行表结构修改才能完成测试过程。
Navicat Premium 的处理速度属于中等,不算快也不算慢,但 CPU 占用还有内存占用都处于高位水平。不过以现在的电脑硬件水平来说,还是可以接受。但 CPU 占用率太高,将使得数据在导入的过程中,服务器不能用于其它用途。
>>>>
3、Mss2sql
Mss2sql 并没有提供计时器,因此我们使用人工计时的方法,整个过程处理完毕大于是 726 秒。Mss2sql 的 CPU 占用率相对其它工具来说较高,但仍属于可以接受的范围之内。
>>>>
4、DB2DB

请点击输入图片描述
DB2DB 同样迁移 300万数据时,仅仅使用了 2 分 44 秒,这个速度相当惊人。不过最后的结果出现一个 BUG,就是提示了转换成功,但后面的进度条却没有走完(在后面的数据完整性评测中,我们验证了数据其实是已经全部处理完毕了)。

在Navicat for MySQL 管理器中,创建目标数据库
(注意:因为是点对点的数据导入,要求sql server 中要导出的数据库名称和要导入到Mysql 中的数据库的名字相同)

点击创建好的目标数据库website点的”表“一项,在右边会出现导入向导选项。

选择SQL Server数据库ODBC,“下一步”,数据链接属性-SQL SERVER ODBC

创建访问SQL SERVER ODBC。

回到导入向导中发现,已经可以查看到SQL Server源数据库中所有的表,选择需要导入的表。

点击下一步,查看当前每个表中字段的数据属性是否正确,如有问题可以进行调整(sql server中有部分字段用途相同,但是名称不同,注意修改,否则会导入失败)

选择“添加”-》“下一步”-》“开始导入”,就可以了,

  • caching_sha2_password认证插件提供更多的密码加密方式,并且在加密方面具有更好的表现,目前MySQL 8.0选用caching_sha2_password作为默认的认证插件,MySQL 5.7的认证插件是MySQL_native_password。如果客户端版本过低,会造成无法识别MySQL 8.0的加密认证方式,最终导致连接问题。

  • MySQL存储引擎现在负责提供自己的分区处理程序,而MySQL服务器不再提供通用分区支持,InnoDB和NDB是唯一提供MySQL 8.0支持的本地分区处理程序的存储引擎。 如果分区表用的是别的存储引擎,存储引擎必须进行修改。要么将其转换为InnoDB或NDB,要么删除其分区。通过MySQLdump从5.7获取的备份文件,在导入到8.0环境前,需要确保创建分区表语句中指定的存储引擎必须支持分区,否则会报错。

  • MySQL 8.0的默认字符集utf8mb4,可能会导致之前数据的字符集跟新建对象的字符集不一致,为了避免新旧对象字符集不一致的情况,可以在配置文件将字符集和校验规则设置为旧版本的字符集和校验规则。

  • MySQL 8.0启动使用的lower_case_table_names值必须跟初始化时使用的一致。使用不同的设置重新启动服务器会引入与标识符的排序和比较方式不一致的问题。

  • < lower_case_table_names >

    https://dev.mysql.com/doc/refman/8.0/en/server-systemvariables.html#sysvar_lower_case_table_names

  • 要避免MySQL 8.0上的启动失败,MySQL配置文件中的sql_mode系统变量不能包含NO_AUTO_CREATE_USER。

  • 从MySQL 5.7.24和MySQL 8.0.13开始,MySQLdump从存储程序定义中删除了NO_AUTO_CREATE_USER。必须手动修改使用早期版本的MySQLdump创建的转储文件,以删除NO_AUTO_CREATE_USER。

  • 在MySQL 8.0.11中,删除了这些不推荐使用的兼容性SQL Mode:DB2,MAXDB,MSSQL,MySQL323,MySQL40,ORACLE,POSTGRESQL,NO_FIELD_OPTIONS,NO_KEY_OPTIONS,NO_TABLE_OPTIONS。从5.7到8.0的复制场景中,如果语句使用到废弃的SQL Mode会导致复制异常。

  • 在执行到MySQL 8.0.3或更高版本的in-place升级时,BACKUP_ADMIN权限自动授予具有RELOAD权限的用户。 

  • 本文对MySQL 5.7到MySQL 8.0的升级过程中出现部分易出现问题进行整理:升级对MySQL版本的要求、升级都做了哪些内容、数据库升级做了哪些步骤以及注意事项,希望对大家版本升级有帮助。



在项目开发中,有时由于项目开始时候使用的数据库是SQL
Server,后来把存储的数据库调整为MySQL,所以需要把SQL
Server的数据迁移到MySQL。下面是小编日常整理的一种sqlserver数据库迁移的方法。
一、SQL
Server中常用数据类型与MySQL不同的地方
二、将SQL
Server数据迁移到MySQL需要注意的一些问题
1、唯一索引的不同,sql
server的唯一索引的字段只能允许存在一个null值,而mysql,一直oracle中唯一索引对应的字段都允许存在多个null值。
2、存储过程的语法存在很大的不同,存储过程的迁移是最麻烦的,需要仔细修改。
3、程序中部分写的SQL语句由于语法的不同也要相应的修改。
三、将SQL
Server数据迁移到MySQL的常见方法
1、使用
SQLyog
迁移
优点
该迁移方法很简单,灵活,迁移时,可以进行字段的修改,比如在sql
server中原来是datetime,然后迁移到mysql时你可以配置成timestamp;成功率很高;
缺点
迁移很慢!这是该方法最大的缺点,如果表的数据量达到几十万行,甚至几百万行,你会发现迁移起来真的很慢。明显比其他迁移方法慢很多。
2、使用
powerdesigner

sql
server
的脚本导出功能
来迁移
(1)、该方法首先使用
powerdesigner,对sql
server数据库,进行逆向工程,得到E-R图,然后生成MySQL的建表语句。完成数据库结构的迁移;当然表结构的迁移,不使用
powerdesigner一样也是可以的。比如我将表结构导出成语句,然后手动进行修改,然后在MySQL中运行,也是一样的;
(2)、然后使用
sql
server的工具
SSMS,将sql
server数据库中的表的数据,导出成insert语句,每个表对应导出一个文件,然后对文件进行一些处理,然后导入到MySQL数据库中。
3、使用Oracle
MySQL
Server
官方的
workbeach
工具进行迁移
(1)、在workbench
连接sql
server时,用户需要有
view
any
database
的权限。不然workbench无法访问sql
server的表结构的元数据,从而无法进行迁移。
(2)、还有使用
Navicat
来进行迁移的方法,方法和
SQLyog
是类似的。


Dreamweaver中CafeTownsend的(数据源名称)DSN怎么显示不出来呢(配置...
晕,要DSN干吗?链接数据库直接写代码就行了 < Response.Charset = "GB2312"Server.ScriptTimeOut = 10 * 60 Dim SQLServer, strSQLServ, strSQLUser, strSQLPass, strSQLData, Connstr, Conn SQLServer = True '使用ACESS的时候,改成False '数据库连接字 If SQLServer Then '使用MSSQL str...

win2008如何设置iiswin2008怎么设置密码
以windowsserver2003、vs2008和sqlservber2005为例。将开发完成的asp.net网站发布,将发布包放在windowsserver2003服务器的文件夹下。将web.config文件下的数据库连接给修改正确工具\/原料windowsserver2003和iissqlservber2005方法\/步骤打开iis.右键“网站”—“新建”—“网站”。点击“下一步”。在“网站...

各个端口都代表什么意思?
按照端口号的大小分类,可分为如下几类 :(1)公认端口(WellKnownPorts):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。(2)注册端口(RegisteredPorts):从1024到49151。它们松散地绑定于一些服务。也就是说有许多...

1706端口
118 sqlserv 119 新闻服务器 120 cfdptkt 121 BO jammerkillah 123 network 124 ansatrader 125 locus-map 126 unitary 127 locus-con 128 gss-xlicen 129 pwdgen 130 cisco-fna 131 cisco-tna 132 cisco-sys 133 statsrv 134 ingres-net 135 查询服务 DNS 136 profile PROFILE Naming System 137 NetBIOS ...

请问电脑端口的定义是?
118 sqlserv119 新闻服务器120 cfdptkt121 BO jammerkillah123 network124 ansatrader125 locus-map126 unitary127 locus-con128 gss-xlicen129 pwdgen130 cisco-fna131 cisco-tna132 cisco-sys133 statsrv134 ingres-net135 查询服务 DNS136 profile PROFILE Naming System137 NetBIOS 数据报(UDP)138 NetBios-...

放映机服务器bgs是什么
118 sqlserv119 新闻服务器120 cfdptkt121 BO jammerkillah123 network124 ansatrader125 locus-map126 unitary127 locus-con128 gss-xlicen129 pwdgen130 cisco-fna131 cisco-tna132 cisco-sys133 statsrv134 ingres-net135 查询服务 DNS136 profile PROFILE Naming System137 NetBIOS 数据报(UDP)138 NetBios-...

如何优化ms server 2008 r2 的内存释放
这时候就需要释放内存缓存啦。一般我用以下两种办法:很简单,打开SQL Server configuration Manager,然后把SQL Server(MSSQLSERVER)重启一下,一般默认的instance 就是MSSQLServer,当然你如果装了其他的instance(实例)就选择相应的,例如MSSQLServer(SQLServLatin1), MSSQLServer(ARABIC)。这种方法最简...

如何优化ms server 2008 r2 的内存释放
这时候就需要释放内存缓存啦。一般我用以下两种办法:很简单,打开SQL Server configuration Manager,然后把SQL Server(MSSQLSERVER)重启一下,一般默认的instance 就是MSSQLServer,当然你如果装了其他的instance(实例)就选择相应的,例如MSSQLServer(SQLServLatin1), MSSQLServer(ARABIC)。这种方法最简...

如何优化ms server 2008 r2 的内存释放
这时候就需要释放内存缓存啦。一般我用以下两种办法:很简单,打开SQL Server configuration Manager,然后把SQL Server(MSSQLSERVER)重启一下,一般默认的instance 就是MSSQLServer,当然你如果装了其他的instance(实例)就选择相应的,例如MSSQLServer(SQLServLatin1), MSSQLServer(ARABIC)。这种方法最简...

PHP链接SQL SERVER2008出现这样的问题
查看php.ini,已经有:extension=php_mssql.dll 经验证,和上面的扩展无关,需要另一扩展:extension=php_dblib.dll http:\/\/blog.csdn.net\/qdujunjie\/article\/details\/17381621

大化瑶族自治县13763919361: 如何将SQL Server数据库迁移到新服务器中 -
镡乳川立: 移动到新路径我们希望将这些数据库文件移动到一个新路径,键入新路径就可以.本文我们移动到下面的路径:D: SQLDATADatabase_Name_Here.mdf D:SQLLogsDatabase_Name_Here_1.ldf进度现在可以单击确定按钮,开始恢复数据库.成...

大化瑶族自治县13763919361: 如何把一台电脑上备份的SQL Server数据还原到另一台电脑? -
镡乳川立: 一台电脑上备份的SQL Server数据还原到另一台电脑,以SQL 2005为例教大家迁移完整数据库到另外一台电脑.具体步骤如下: 1. 开始菜单--->程序,打开SQL 2005; 2. 连接服务器后,找到我们需要迁移的数据,右键点击属性; 3. 在属性...

大化瑶族自治县13763919361: sqlserver数据库数据如何转移?
镡乳川立: 在SQL Server企业管理器里选中目的数据库 ,按鼠标右键,选所有任务->导出数据-> 弹出数据转换服务导入/导出向导窗口->下一步->选择数据源窗口,选择要要导出数据的数据库->下一步->选择目标窗口,选择要将数据复制到哪个数据库->下一步->下一步->下一步->下一步->完成你也可以把数据导出到excel中,然后再拷贝到你的数据库的表里.操作也一样,只不过选择目标是选excel就行了.

大化瑶族自治县13763919361: 如何迁移SQL Server系统数据库 -
镡乳川立: 首先迁移master数据库,master数据库是整个SQL Server实例的核心,所有的设置都存放在master数据库里,如果master数据库出现问题,整个实例都将瘫痪.首先打开SQL Server Configuration Manager,在左边的列表框中选中SQL Server ...

大化瑶族自治县13763919361: 如何把sqlserver数据迁移到mysql数据库及需要注意事项 -
镡乳川立: 在项目开发中,有时由于项目开始时候使用的数据库是SQL Server,后来把存储的数据库调整为MySQL,所以需要把SQL Server的数据迁移到MySQL.下面是小编日常整理的一种sqlserver数据库迁移的方法.一、SQL Server中常用数据类型与...

大化瑶族自治县13763919361: 怎样把本地sql server数据库导入到服务器 -
镡乳川立: 【第一导入数据结构】 打开本地计算机上的 SQL Server Management Studio 客户端软件:本地电脑:登陆本机数据库连接控制端:选择您要导出到服务器的数据库然后鼠标右键:选择生成SQL脚本:选中本地电脑需要导出脚本的库名字 需要...

大化瑶族自治县13763919361: 如何把sql server数据库迁移到oracle -
镡乳川立: 前阵做了下数据库迁移,从Sql Server2005迁移到Oracle 10g,这里说一下迁移的方法. Sql Server和Oracle区别比较大,包括语法,字段类型,数据库机制,配置管理方法等等,区别是全方位的,做迁移需要注意很多问题,在迁移过程中也会...

大化瑶族自治县13763919361: 如何远程把sql server中的数据导入到本地sql server中? -
镡乳川立: 一:备份远程数据库,将备份文件拷贝到本地,然后在本地还原数据库.二:将远程数据库的数据文件跟日志文件拷贝到本地(拷贝之前需要先停止远程数据库服务,否则无法进行拷贝),然后在本地进行附加数据库操作.三:(需要知道远程数据库的登录名跟密码)打开企业管理器,在“sql server”组上右键选择“新建sql server注册”,点下一步,在“可用的服务器”中输入远程服务器的IP,然后点击“添加”,继续下一步,一步一步按照指导完成.注册完成后就可以像操作本地数据库一样对远程数据库进行操作了

大化瑶族自治县13763919361: 怎么把sqlserver中的数据导入到mysql -
镡乳川立: 由于项目开始时候使用的数据库是SQL Server,后来把存储的数据库调整为MySQL,所以需要把SQL Server的数据转移到MySQL;由于涉及的表比较多,所以想在MySQL中生成对应表并导入数据;我使用了MySQL的Client的工具SQLyog,这个工具的安装很简单.安装完成之后点击需要导入的目标数据库,点击右键【Import】->【Import Extenal Data】;http://www.cnblogs.com/gaizai/p/3237907.html

大化瑶族自治县13763919361: 实现SQL Server 数据转移的方案有哪些 -
镡乳川立: DTS设计器导入导出DTS的设计器功能强大,支持多任务,也是可视化界面,容易操作,但知道的人一般不多,如果只是进行SQL Server数据库中部分表的移动,用这种方法最好,当然,也可以进行全部表的移动.在SQL Server Enterprise ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网