将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,然后进入企业管理器,重新导出该表即可。
上一篇: 浅析Python中的for 循环
推荐阅读
-
加载MySQL、Oracle、SQL Server 2000、SQL Server 2005及以上版本 的加载数据库驱动程序
-
SQL server 2005将远程数据库导入到本地的方法
-
将MySQL数据导入到Sql Server中_MySQL
-
怎么将sql sever中的数据导入到mysql中?
-
将SQL Server 2000数据导入到MySQL 5.5的步骤
-
怎么将sql sever中的数据导入到mysql中?
-
将MySQL迁移到Microsoft SQL Server 2000 (二)-数据库相关-PHP教程_PHP教程
-
加载MySQL、Oracle、SQL Server 2000、SQL Server 2005及以上版本 的加载数据库驱动程序
-
将MySQL迁移到Microsoft SQL Server 2000 (二)-数据库相关-PHP教程
-
将MySQL迁移到Microsoft SQL Server 2000 (二)-数据库相关-PHP教程