Pages

Wednesday, 31 October 2012

导入mysql数据库时,提示 USING BTREE 相关错误的解决办法

在导入mysql数据库时,出了问题,老是提示 USING BTREE附近有错误,之前也没遇到过该错误,于是在网上查了下,找到了解决办法。最后成功的导入了数据库。来吧给大家分享下解决办法。
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 ) ENGINE=MyISAM DEFAULT CHARSET=gbk’ at line 7
   CREATE TABLE `dede_purview` ( `mid` mediumint(8) DEFAULT ’0′, `typeid` smallint(5) DEFAULT ’0′, `rank` smallint(6) DEFAULT NULL, `pkey` varchar(30) CHARACTER SET latin1 NOT NULL, `pvalue` text NOT NULL, KEY `pkey` (`pkey`) USING BTREE ) ENGINE=MyISAM DEFAULT CHARSET=gbk
   具体什么意思,我的也看不懂,不过这种问题还好不是第一次遇到,简单的讲,原因很简单,MYSQL数据库版本不对应。我本地的版本比较 高,5.1的把,服务器上的是5.0的。高版本导入低版本就会报错,有牛人给我建议装2个版本的MYSQL互相转换,此说法很DT,我没有采纳。好吧,简 单的说下解决办法:下文贴下我以前博客里面收集的解决办法:
  有时导入mysql会提示如下错误:
  C:\Users\liqiang>mysql -uroot -paaaaaa guangxi
  ERROR 1064 (42000) at line 486: 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 `Reference_1_FK` (`RoleID`),
  CONSTRAINT `FK_userinfo_RoleID’ at line 11
  解决办法是打开要导入的文件在里面搜索 BTREE 找到如下内容
  KEY `columnCindex` (`columnC`) USING BTREE
  修改为
  KEY `columnCindex` USING BTREE (`columnC`),
  然后就可以顺利通过了
  下面放上某个牛人提供的解说,我不多写了。备份网站数据,转移服务器,顺手写点东西,就为了省事,凑点字数把。
  织梦V5.7GBK的系统在xampp上测试之后要导出数据库安装到演示服务器上,
  在导入的时候报错,提示版本兼容问题,错误位置为“USING BTREE ) ENGINE=MyISAM DEFAULT CHARSET=gbk;”
  表名为dede_purview,为了快速解决问题,删除了“USING BTREE”,导入成功。后经搜索“USING BTREE”,
  发现这是MYSQL 5.1的一个BUG,其出现原因是mysql 5.1和mysql 5.0在处理到索引语句时有所区别,
  出现了不兼容的情况,在Mysql 5.1中建有UNIQUE KEY 的表导出时是这个样子的“KEY `pkey` (`pkey`) USING BTREE”,
  而Mysql 5.0处理的时候只能识别“KEY `pkey` USING BTREE (`pkey`)”。因此需要改一下Key的位置。
  网上还有解决方法是先把UNIQUE KEY 改成普通索引,导好后再改回来,这种解决办法适用于建有UNIQUE KEY
 
这个是从一个同行的博客引入的,也就是具体的解决办法,大家如果出现了该问题,可是常识上面的方案哦.