您好,欢迎访问一九零五行业门户网

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

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

推荐信息