sqlserver⽂件转mysql_Sqlserver转mysql⽅法
利⽤Navicat的导⼊向导将sqlserver转换成mysql。
使⽤前需要本机安装有:
Mysql
Mysql图形界⾯——Navicat
SQL Server 2005
ODBC
安装mysql
Mysql安装时出现错误,到最后⼀步出现could not start the service mysql error:0。
问题原因是以前装过mysql在卸载的时候没有卸⼲净。
解决⽅法如下:
1. Win+R输⼊services.msc查看MySQL服务是否开启,如果开启,则停⽌,如果没开启则不⽤动。
2. 进⼊MySQL安装⽬录的/bin⽂件夹,例如我的C:\Program Files\MySQL\MySQL Server 5.0\bin然后使⽤命令mysqld-nt –remove,提⽰成功。
3. 继续进⼊C盘Program Files⽂件夹,删除掉MySQL⽂件夹。mysql下载到了c盘
这样就删除⼲净了。
安装mysql图形界⾯
有⼀个很友好的mysql图形界⾯——Navicat,版本随意。
安装ODBC (我的WINdows7⾃带的有)
Odbc安装包可以到⽹上去,下载后安装。
如果要检测odbc是否安装好,可以进⼊开始——控制⾯板——管理⼯具中是否有“数据源(ODBC)”,然后双击它进⼊,选择驱动程序,看是否有ODBC驱动器。
⼀般安装好后都有。
导⼊向导完成转换
1. 在Navicat中新建连接,输⼊root密码连接到mysql,然后新建数据库;
2. 点击“导⼊向导”,选择ODBC,进⼊下⼀步;
3. 选择导⼊数据库源,选择“Microsoft OLE DB Provider for SQL Server”,点下⼀步;
4. 在下拉框中选择本机,选择相应服务器信息和源数据库名,并测试;
5. 测试连接成功后,点确定进⼊需要转换的表的选择,可以选择全选,甚⾄可以添加查询,我这⾥选择dbo.duser作为⽰例;
连续点击两次下⼀步,进⼊表结构调整,注意这⾥要⼿动重新设置主键,不然后来会警告——表中没有主键。
6. 点下⼀步,进⼊导⼊模式选择:
7. 点击下⼀步进⼊最后阶段,点击开始就可以进⾏转换了:
这⾥当数据库中有中⽂的时候可能会出现失败的情况,我做的时候就出现了这样的情况,点击上图中的⽇志按钮查看⽇志:
[2012-03-05 18:25:39] [Msg] Import start
[2012-03-05 18:25:39] [Msg] Import type – ODBC
[2012-03-05 18:25:39] [Msg] Import from – Provider = SQLOLEDB.1; Integrated Security=SSPI; Persist Security
Info=False; Initial Catalog=hb; Data Source=WUYANZAN-PC
[2012-03-05 18:25:39] [Msg] Create table [animalLevel]
[2012-03-05 18:25:39] [Msg] Import table [animalLevel]
[2012-03-05 18:25:39] [Err] 1366 - Incorrect string value: '\xE7\xBA\xA7' for column 'title' at row 1
[2012-03-05 18:25:39] [Err] INSERT INTO `animalLevel` (`id`,`title`) VALUES ('3','SPF级')
[2012-03-05 18:25:39] [Err] 1366 - Incorrect string value: '\xE6\x99\xAE\xE9\' for column 'tit
le' at row 1 [2012-03-05 18:25:39] [Err] INSERT INTO `animalLevel` (`id`,`title`) VALUES ('1','普通级')
[2012-03-05 18:25:39] [Err] 1366 - Incorrect string value: '\xE6\xB8\x85\xE6\' for column 'title' at row 1 [2012-03-05 18:25:39] [Err] INSERT INTO `animalLevel` (`id`,`title`) VALUES ('2','清洁级'),('4','⽆菌级'),('5','悉⽣动物')
[2012-03-05 18:25:39] [Msg] Processed:5, Added:0, Updated:0, Deleted:0, Errors:5
[2012-03-05 18:25:39] [Msg] Finished – Unsuccessfully
根据⽇志显⽰应该是插⼊数据时出现乱码,导致插⼊出错,然后我直接将以上INSERT语句在mysql的图形界⾯上执⾏,结果也出现了相同错误,如此可以肯定是Navicat的码制设置有问题,导致对中⽂的识别出现乱码。因此应该重新设置Navicat属性,我⾃⼰摸索后发现,右键点击数据库,选择数据库属性后出现的第⼀个选项就是字符集的编码设置,根据⽹上的说法我改成utf-8之后点确定,重新操作⼀遍,中⽂问题解决了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论