如何把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、启动该工具,设置好数据链接。

2、先看下SQL SERVER中的数据,现在需要将这些数据导入到MySQL中。

3、在MySQL中也建有同样的表,但在该表中做了点区别,age这个字段命名跟SQL SERVER中不一样,其余的都一样。

4、点击工具栏中的下列按钮开始数据导入。

5、根据提示 *** 作。

6、选择文件数据源。

7、选择第一项。

8、导入完成。

MySQL命令行导出数据库:

1,进入MySQL目录下的bin文件夹:cd

MySQL中到bin文件夹的目录

如我输入的命令行:cd

C:\Program

Files\MySQL\MySQL

Server

41\bin

(或者直接将windows的环境变量path中添加该目录)

2,导出数据库:mysqldump

-u

用户名

-p

数据库名

>

导出的文件名

如我输入的命令行:mysqldump

-u

root

-p

news

>

newssql

(输入后会让你输入进入MySQL的密码)

(如果导出单张表的话在数据库名后面输入表名即可)

3、会看到文件newssql自动生成到bin文件下

命令行导入数据库:

1,将要导入的sql文件移至bin文件下,这样的路径比较方便

2,同上面导出的第1步

3,进入MySQL:mysql

-u

用户名

-p

如我输入的命令行:mysql

-u

root

-p

(输入同样后会让你输入MySQL的密码)

4,在MySQL-Front中新建你要建的数据库,这时是空数据库,如新建一个名为news的目标数据库

5,输入:mysql>use

目标数据库名

如我输入的命令行:mysql>use

news;

6,导入文件:mysql>source

导入的文件名;

如我输入的命令行:mysql>source

newssql;

工具:navicat for MySQL

步骤:

1、打开navicat for MySQL,连接到数据库所在服务器。如本图就是连接到本地数据库。

2、创建一个空的数据库。在localhost处点右键,选择“新建数据库”,d出窗口中填写新建的数据库名称,字符集一般选择UTF8即可(可根据实际情况更改),最后点击确定按钮,即可创建成功。

3、创建成功后,双击新建的数据库,使之变成绿色,即连接状态。

4、在badkano_test处点击鼠标右键,选择“运行sql文件”。

5、d出窗口点“”然后选择要导入的sql文件,点击打开。

6、最后点“开始”按钮,等待导入步骤执行完成即可。

具体 *** 作步骤如下:

1、首先打开Navicat软件,连接到数据库进入需要导入的数据库:

2、然后点击表格,选择右键导入向导,进行导入 *** 作:

3、这里可以选择很多种导入方式,点击文本文件从txt中导入,选择后点击下一步:

4、点击下一步会d出对话框,选择要导入的文件,双击文件导入即可:

5、导入之后进入下一步,然后设置分隔符,这里不做改变,然后回车进行下一步:

6、然后需要拿表中的元素和txt中的元素的首行做匹配,这里需要一个一个完成:

7、完成手工匹配后点才会开始导入 *** 作,如果有错误信息会在下方显示,没有则会通过:

8、导入时间根据数据量的大小决定,等待片刻就会打入成功,最后打开数据会发现数据已经全部导入了:

MySQL数据库的导入,有两种方法:

1)

先导出数据库SQL脚本,再导入;

2)

直接拷贝数据库目录和文件。

在不同 *** 作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生。

所以一般推荐用SQL脚本形式导入。下面分别介绍两种方法。

2

方法一

SQL脚本形式

*** 作步骤如下:

21

导出SQL脚本

在原数据库服务器上,可以用phpMyAdmin工具,或者mysqldump命令行,导出SQL脚本。

211

用phpMyAdmin工具

导出选项中,选择导出“结构”和“数据”,不要添加“DROP

DATABASE”和“DROP

TABLE”选项。

选中“另存为文件”选项,如果数据比较多,可以选中“gzipped”选项。

将导出的SQL文件保存下来。

212

用mysqldump命令行

命令格式

mysqldump

-u用户名

-p

数据库名

>

数据库名sql

范例:

mysqldump

-uroot

-p

abc

>

abcsql

(导出数据库abc到abcsql文件)

提示输入密码时,输入该数据库用户名的密码。

22

创建空的数据库

通过主控界面/控制面板,创建一个数据库。假设数据库名为abc,数据库全权用户为abc_f。

23

将SQL脚本导入执行

同样是两种方法,一种用phpMyAdmin(mysql数据库管理)工具,或者mysql命令行。

231

用phpMyAdmin工具

从控制面板,选择创建的空数据库,点“管理”,进入管理工具页面。

在"SQL"菜单中,浏览选择刚才导出的SQL文件,点击“执行”以上载并执行。

注意:phpMyAdmin对上载的文件大小有限制,php本身对上载文件大小也有限制,如果原始sql文件

比较大,可以先用gzip对它进行压缩,对于sql文件这样的文本文件,可获得1:5或更高的压缩率。

gzip使用方法:

#

gzip

xxxxxsql

得到

xxxxxsqlgz文件。

提示输入密码时,输入该数据库用户名的密码。

3

直接拷贝

如果数据库比较大,可以考虑用直接拷贝的方法,但不同版本和 *** 作系统之间可能不兼容,要慎用。

31

准备原始文件

用tar打包为一个文件

32

创建空数据库

33

解压

在临时目录中解压,如:

cd

/tmp

tar

zxf

mydbtargz

34

拷贝

将解压后的数据库文件拷贝到相关目录

cd

mydb/

cp

/var/lib/mysql/mydb/

对于FreeBSD:

cp

/var/db/mysql/mydb/

35

权限设置

将拷贝过去的文件的属主改为mysql:mysql,权限改为660

chown

mysql:mysql

/var/lib/mysql/mydb/

chmod

660

/var/lib/mysql/mydb/

1打开Mysql的数据库服务2启动MySQL后,我们找到需要用到的脚本文件,也就是数据库文件,当然,我们首先得建立一个数据库,这样才可以导入脚本3我们在将脚本拷到本地磁盘的根目录,这样方便进入找到脚本,这里以D盘来说明,使用testsql:接着我们来到命令行,使用SOURCEd:/testsql;来导入数据库,先进入mysql4首先要在数据库中建立好数据库,然后导入脚本,所以先建立一个数据库哦,不要脚本是不知道你要往哪个数据库中导入脚本的5然后就可以输入导入sql文件命令:mysql>USE数据库名;mysql>SOURCEd:/testsql;参考自

以上就是关于如何把sqlserver数据迁移到mysql数据库及需要注意事项全部的内容,包括:如何把sqlserver数据迁移到mysql数据库及需要注意事项、mysql怎样将一个数据库中的数据导入到另一个数据库中、怎样将数据存入mysql数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/9855315.html

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

发表评论

登录后才能评论

评论列表(0条)

保存