灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:10621回复:0

[mysql]mssql如何转换到MySQL

楼主#
更多 发布于:2014-07-01 11:24
方法一:
  1.导表结构
   使用MySQL生成create脚本的方法。找到生成要导出的脚本,按MySQL的语法修改一下到MySQL数据库中创建该表的列结构什么的。
 
  2.导表数据
 
  在MSSQL端使用bcp导出文本文件:
 
  bcp "Select * FROM dbname.dbo.tablename;" queryout tablename.txt -c -Slocalhostdb2005 -Usa
 
  其中""中是要导出的sql语句,-c指定使用t进行字段分隔,使用n进行记录分隔,-S指定数据库服务器及实例,-U指定用户名,-P指定密码.
 
  在MySQL端使用mysqlimport 导入文本文件到相应表中
 
  mysqlimport -uroot -p databasename /home/test/tablename.txt
 
  其中-u指定用户名,-p指定密码,databasename指定数据库名称,表名与文件名相同。
 
方法二:
 
MYSQL Migration Toolkit 应该是可以用的。
1、把MySQL Migration Toolkit安装在运行有MS SQL server的机器上;
2、此机器还需要安装java环境和jdbc驱动:
java环境去sun网站上下载,jdbc驱动去MySQL网站上下载(mysql-connector-java-5.0.5.zip),并且设置好路径的环境变量;
3、如果你原来的数据库里有中文字符,必须显式设置几个有关字符集的地方:
A. Source Database 选择Database System为MS SQL:
 这里需要手动写jdbc连接串:点击界面下方的Advanced键,出现一个方框,提示输入 "Connection String:",在这里输入如下格式:
jdbc:jtds:sqlserver://IP:PORT/YOURDB_NAME;user=USER;password=PASSWD;charset=gb2312(or gbk);domain=
 
其中,大写 IP, PORT, YOURDB_NAME,USER, PASSWD都是要用实际MS SQL Server服务器的ip和端口,数据库名,数据库用户名,密码填写;
 
B. Target Database 同样需要手动编辑jdbc连接串:
点击界面下方的Advanced键,出现一个方框,提示输入"Connection String:"
在这里输入如下格式:
 
jdbc:mysql://IP:3306/?user=USER&password=PASSWD&useServerPrepStmts=false&characterEncoding=gbk
 
其中,大写 IP, USER, PASSWD都是要用实际MySQL服务器的ip,数据库用户名,密码填写
 
C. 选择sql server的schema和表
D. Object Mapping
修改"Migration of type MSSQL Table":
点击"Set Parameter",选择"User defined", 设置"charset=gb2312(or gbk), collation=gb2312(or gbk)_chinese_ci"
 E. 之后没有别的选项,一直到最后
F. 移植完以后,用图形工具(MySQL query browser、SQLyog等)或用mysql客户端(命令行)联接,都可以看到中文。
 在客户端(命令行),先执行
mysql> set names gb2312(or gbk);
 4、由于MS SQL server和MySQL在语法格式和数据类型定义等方面有一定的差异,所以移植过程不是很简单,可能需要反复几次,修正语法格式和数据类型定义。MySQL Migration toolkit可以让用户手动修改生成的MySQL SQL语句,在其中的"Manual Editing"一节

喜欢0 评分0
游客

返回顶部