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

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

在项目开发中,有时由于项目开始时候使用的数据是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 是类似的。

1使用MSSQL2MYSQL 开源软件帮助你迁移;

2利用MSSQL软件提供的跨异构数据源的工具,直接远程数据写入到MySQL中;

3数据到导出为特殊分隔符的文本数据,再使用LOAD DATA 命令加载;

使用命令行当然慢了,直接使用工具即可。使用sqlyog这个工具。用法如下

先用sqlyog连接上两个库,在目标库上提前建立好数据库。

右击源库,选择复制数据到其他主机(差不多这么写的),然后d出的界面是左边是源库,右边你选择目标库。选择同步结构和数据。

然后ok。

因为你的数据比较大,也比较多,所以肯定还是会很慢,耐心等吧。至少比你使用命令行强得多。

理论上是可以实现的。

首先要确认两个mysql数据库的版本是否一致,如果不一致,最好转换数据版本。

使用专业的数据库备份恢复软件,或者虚拟主机自带的数据备份恢复也可以。

如果自己 *** 作不熟练,建议联系服务商,让他帮你备份和恢复。以免数据丢失。

1、用dump命令备份数据库。

# mysqldump -u root -p dbfile > dbfilesql

2、用rsync从新服务器获得备份的文件(SCP或WGET也可以)。

# rsync -avr root@myolddbserver:/home/mydumpfolder/dbfilesql

3、登陆新服务器的mysql客户端。

# mysql -u root -p

4 建立数据库。

mysql> create database dbfile;

5 选择新数据库;

mysql> use dbfile;

6 加载数据;

mysql> source dbfilesql

或者

在Mysql程序中有我自己的一个数据库共5张表,里边数据不算太多。我现在想把他们全部弄到另一台电脑中去,该怎么弄,如果不用其它的软件工具,只用Mysql自已的程序不知可否?

注:不用考虑 *** 作系统。

---------------------------------------------------------------

在dos命令提示符下使用mysqldump命令进行备份

如下:

C:\Documents and Settings\Administrator>mysqldump yinshi >c:\\backuptxt -uroot

-p12142022

说明:yinshi是我的数据库名,里面有5张表; c:\\backuptxt 是我备份出来文件名和路径;

-u,-p参数后面跟的分别是用户名和密码

将你备份出来的文件我这里是backuptxt拷贝到另一台机上,再在dos命令提示符下用mysql命令,进行恢复,如下:

C:\Documents and Settings\Administrator>mysql < c:\\backuptxt -uroot -p12142022

or

mysql>source backuptxt;(这里backuptxt在放在data目录下)

---------------------------------------------------------------

如果另一台机器上也安装了mysql,可以直接导入

C:\mysql\bin>mysqldump -h172206250 -udeveloper -p123456 --opt server_databasename | mysql -hlocalhost -uroot -C obj_databasename

172206250源服务器ip

developer源服务器连接用户名

---------------------------------------------------------------

有两种办法。

1、在B机器上装mysql。

将A机器上的mysql/data下的你的数据库目录整个拷贝下来。

将B机器上的mysql服务停止。

找到B机器上的mysql/data目录,将你拷贝的目录粘贴进去,然后启动mysql服务就可以了。

2、使用SQL语句备份和恢复

你可以使用SELECT INTO OUTFILE语句备份数据,并用LOAD DATA INFILE语句恢复数据。这种方法只能导出数据的内容,不包括表的结构,如果表的结构文件损坏,你必须要先恢复原来的表的结构。

语法:

SELECT INTO {OUTFILE | DUMPFILE} ’file_name’ FROM tbl_name

LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE ’file_nametxt’ [REPLACE | IGNORE]

INTO TABLE tbl_name

SELECT INTO OUTFILE ’file_name’

最简单方法在控制面板管理工具下把mysql服务停掉,然后找到你的mysql安装目录下的data文件夹(也就是mysql默认的数据库文件夹),把你的那个数据库目录复制出来放到另台机器上的data下就可以了。

当然也可以用命令行备份成sql

mysqldump -u 用户名 -p密码 数据库名> d:\备份数据库名_"%date:~0,10%"sql,其中"%date:~0,10%"表示日期

以上就是关于如何把sqlserver数据迁移到mysql数据库及需要注意事项全部的内容,包括:如何把sqlserver数据迁移到mysql数据库及需要注意事项、mysql数据库8g这么大怎么迁移好、MySQL5.6.21 数据迁移到 MySQL5.7.16方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10156109.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存