欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

将SQL Server 2000数据导入到MySQL 5.5的步骤

程序员文章站 2024-01-10 19:14:16
...

将SQL Server 2000数据导入到MySQL 5.5的方法 一、安装MySQL 5.5(可以与SQL Server不在同一台服务器上),并新建一个空的数据库(一般用utf-8编码),用于接收导入的数据。 二、在SQL Server的服务器上安装mysql-connector-odbc-5.3.2-win32。 三、在SQL Ser

将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,然后进入企业管理器,重新导出该表即可。