将SQL Server 2000数据导入到MySQL 5.5的方法

一、安装MySQL 5.5(可以与SQL Server不在同一台服务器上),并新建一个空的数据库(一般用utf-8编码),用于接收导入的数据。

二、在SQL Server的服务器上安装mysql-connector-odbc-5.3.2-win32。

三、在SQL Server的服务器上运行“管理工具”->“数据源(ODBC)”,切换到“系统DSN”面板,添加“MySQL ODBC 5.3 Unicode Driver”,填写“Data Source Name”为任意名称,填写“TCP/IP Server”和“Port”为MySQL数据库的IP和端口(一般为3306),再填写有数据库权限的用户和密码(一般为root用户,不装在本机的MySQL需要开通root远程访问权限),最后选择“Database”为第二步创建的数据库。

四、运行SQL Server的企业管理器,右键单击需要导出的数据库,在上下文菜单上选择“所有任务”->“导出数据”。点击下一步,先确认数据源的数据库名称是否正确(这一步一般选择Windows验证,也可以换成SQL Server身份验证)。再点击下一步,选择“目的”为“MySQL ODBC 5.3 Unicode Driver”,再选择“用户/系统 DSN”为第三步创建的Data Source。点击下一步,选择“从数据库复制表和视图”。点击下一步,在选择源表和视图中点击全选,点击下一步,然后立即执行。

五、数据导出成功后,SQL Server中的表字段为主键和自增量的字段不会在MySQL中设置成功。还需要回到MySQL,进行手工设置。可以使用Navicat MySQL图形工具或者执行SQL:

ALTER TABLE `users`

MODIFY COLUMN `id`  int(11) NOT NULL AUTO_INCREMENT FIRST ,

ADD PRIMARY KEY (`id`);

我在导出数据的过程中,有些表在COPY数据时会发生错误。我遇到的错误和解决办法如下:

1、某个表的某个字段 cannot be null

在导出数据之前,先在SQL Server中将该表的该字段设置为“允许为NULL”

2、某个表的某个字段 Data too long for column ‘name‘

这种情况发生在安装了mysql-connector-odbc-5.1.2-win32,且SQL Server某记录存在中文乱码。改用mysql-connector-odbc-5.3.2-win32并选择MySQL ODBC 5.3 Unicode Driver后,问题解决。

3、某个表 id doesn‘t have a default value

查询Google,有解决办法禁用MySQL的strict Mode,参见:http://blog.csdn.net/god8816/article/details/8593419

其实只需要手工修改MySQL中该表的id字段为主键+Auto Increment,然后进入企业管理器,重新导出该表即可。

将SQL Server 2000数据导入到MySQL 5.5的方法,布布扣,bubuko.com

时间: 2024-10-06 23:35:38

将SQL Server 2000数据导入到MySQL 5.5的方法的相关文章

SQL Server 批量数据导入

1. 由于Bulk Insert通常配合格式化文件批量导入数据更方便,所以这里先介绍bcp工具导出格式化文件的方法. bcp是SQL Server提供的命令行实用工具提供了数据的导出.导入.格式文件导出等功能,导出格式化文件的语法如下: bcp 数据库名.用户名.表名 format nul -- 这里的nul必须存在,用于不是导出和导入数据的情况下 -f 输出的格式化文件名 [-x] -c -- -x参数指定输出的格式文件为xml格式(默认非xml格式); -c参数指定数据存储方式为字符,并默认

Sql Server删除数据表中重复记录 三种方法

本文介绍了Sql Server数据库中删除数据表中重复记录的方法. [项目]数据库中users表,包含u_name,u_pwd两个字段,其中u_name存在重复项,现在要实现把重复的项删除![分析]1.生成一张临时表new_users,表结构与users表一样:2.对users表按id做一个循环,每从users表中读出一个条记录,判断new_users中是否存在有相同的u_name,如果没有,则把它插入新表:如果已经有了相同的项,则忽略此条记录:3.把users表改为其它的名称,把new_use

将oracle的数据导入到mysql的四种方法

一.Navicat Premium中的数据迁移工具 为了生产库释放部分资源,需要将API模块迁移到mysql中,及需要导数据. 尝试了oracle to mysql工具,迁移时报错不说,这么大的数据量,用这种简陋的工具不大可靠. 意外发现平时用的数据库视图工具Navicat Premium中有数据迁移工具,意外的好用.这个工具本身支持mysql,oracle,sqlLite,PostgreSql数据库,因此而也提供了在不同数据库之间迁移数据的功能. 迁移之前,先确保你建立了这两个数据库的conn

如何将.SQL文件的数据导入到Mysql的数据库中

一.用cmd的调试环境导入.sql文件中的数据: WinR键打开cmd输入: MySQL -u root -p 进入MySQL后MySQL>use DR;   MySQL> source c:/DR.sql 注意上面的 DR是你事先创建好的文件夹,创建在Mysql的data目录下面,DR.sql是你下载的数据库的内容,注意DR.sql是要放在磁盘的最外层目录的,否则无法导入数据. 二.用Mysql Workbence调试环境导入数据: 打开Mysql Workbence软件,选择Data Im

SQL Server大数据导入导出:将一张表的数据导入到另一张表

今天下午休息的时候又被扔给一项任务:把全国的街道数据导入街道表.但是他们扔给我的SQL脚本是从网上down的一个,跟平台这边的数据库设计的完全不一样. 当时的思路是:先把扔给我的脚本在本地生成一个表,然后选出要的数据,批量插入到开发库所在服务器的表. 然后,按照这个思路做了个测试: INSERT INTO dbo.test_Street(Code,CountyCode,CnName,VersionNo,Creator,CreateTime,ValidStatus) /*要插入数据的表*/ SEL

sql server 数据库 数据DateTime 转mysql

首先将sql server  DateTime 转换为varchar(50) 然后更新转换过的 DateTime字段, UPDATE 表名 SET LastUpdateTime=CONVERT(VARCHAR(50),cast(LastUpdateTime as datetime),120),CreateTime=CONVERT(VARCHAR(50),cast(CreateTime as datetime),120) 然后再导出 sql 脚本就可以了.

有关sql server 2008无法导入数据库mdf文件的处理方法

解决方法1:根据该博客中的引导,加上自己安装版本的细节,可以添加成功 http://www.2cto.com/database/201408/328930.html 解决方法2: 根据<数据库系统实验指导教程>(汤娜 汤庸 叶小平 刘海编著)附录B中“实验数据(School数据库)的导入”,也可以导入成功.

SQL Server 迁移数据到MySQL

一.背景 由于项目开始时候使用的数据库是SQL Server,后来把存储的数据库调整为MySQL,所以需要把SQL Server的数据转移到MySQL:由于涉及的表比较多,所以想在MySQL中生成对应表并导入数据: 上网找了些资料,如:将ACCESS和MSSQL导入MYSQL中.MySQL Migration 实现 MSSQL 到 MySQL数据迁移,虽然不知道里面的做法是否可以成功转移,但是里面的过程比较复杂,没有去尝试,后来自己找到了方法,最重要就是简单和准确(暂时没发现明显的BUG),这里

SQL Server 2000向SQL Server 2008 R2推送数据

[文章摘要]最近做的一个项目要获取存在于其他服务器的一些数据,为了安全起见,采用由其他“服务器”向我们服务器推送的方式实现.我们服务器使用的是SQL Server 2008 R2,其他“服务器”使用的都是SQL Server 2000,还都是运行在Windows XP上的,整个过程遇到了一些问题,也参考了一些文档,最终费了好多事才算搞定. [文章索引] 配置分发服务器 配置发布数据库 配置订阅 [一.配置分发服务器] SQLServer 2000的复制服务包括三个角色:发布服务器.分发服务器和订