不同mysql版本数据导入出现的问题

原mysql的版本是:3.4.10.1deb1,目标mysql的版本是:5.0.51b-community-nt-log,导入数据时出现了一下问题:

1、DELIMITER

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER //' at line 1

google了一下,[1]中的说明正确,它说,DELIMITER并不是一个MySQL命令,与你执行这句话的mysql客户端有关,我用的是PHPMYAdmin,其客户端的版本为:5.0.51a,它不支持DELIMITER语句,换个客户端即可。用命令符界面导入sql文件,运行成功。总结:DELIMITER与MySQL服务器的版本无关,只与mysql客户端有关


2、不支持BTREE结构

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USING BTREE,
  KEY `authorid` (`authorid`) USING BTREE,
  KEY `dateline` (`datel' at line 24

其实并不是mysql版本不支持BTREE索引结构,而是sql语法不对。目标版本的mysql语句为将括号里的索引项放置在后面,即将所有类似 

KEY `authorid` (`authorid`) USING BTREE

的语句修改成[2]:

 KEY `authorid`USING BTREE(`authorid`)

3、不支持Innodb

目标mysql数据库不支持Innodb引擎,但是程序需要支持事务,因此,需要让其支持Innodb。做法如下:

找到my.ini文件,查找skip-innodb,删除前面的#,保存。重启mysql服务。


[1] http://stackoverflow.com/questions/9017269/mysql-delimiter-syntax-error

[2] http://www.xuyuanchi.com/thread-933-1-1.html

[3] http://lxy.me/mysql-supports-innodb-storage-engine.html

0 条评论

    发表评论

    电子邮件地址不会被公开。 必填项已用 * 标注