
在项目开发中,有时由于项目开始时候使用的数据库是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方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)