公告:

织梦dede_purview这个表不能导入#1064 - You have an error in your SQL syntax;解决方法 'USING BTREE

作者:star0312 / 时间:12年前 (2013/02/15) / 分类:未命名 / 阅读:2570 / 评论:0

     

    最近在弄www.web532.com 的网站,本地系统用WAMPserver系统搭建,

     

    本地mysql的数据库版本为:

     

  •     
  •         

                服务器: localhost (localhost via TCP/IP)         

        
    
  •         

                软件: MySQL         

        
    
  •         

                软件版本: 5.5.24-log - MySQL Community Server (GPL)         

        
    
  •         

                协议版本: 10         

        
    
  •         

                用户: root@localhost          

        
    
  •         

                服务器字符集: UTF-8 Unicode (utf8)          

        

    本地PHPmyadmin的版本信息:

     

    phpMyAdmin

  •     
  •         

                版本信息: 3.5.1,         

        

     

     

    远程Mysql数据库版本信息:

     

  •     
  •         

                服务器版本: 5.0.22         

        
    
  •         

                Protocol version: 10         

        
    
  •         

                服务器: Localhost via UNIX socket         

        

    远程PHPmyadmin的版本信息

    phpMyAdmin - 2.9.1.1

     

    然后在息壤-鹏博士开了一个linux的空间,将文件ftp上去,接下来就是mysql数据的迁移。

    本来想用SQLyog企业版对拷过去,没成功,远程Mysql服务器连接不上,估计是息壤将3306端口封掉了。

    其实本来打算的数据库迁移有三种方式:1、利用SQLyog类似的工具对拷,此种办法已经宣告失败;2、使用PHPmyadmin备份sql,然后远端import进去;3、使用帝国备份王备份后还原。其实还有种方式,就是直接用dedecms自带的备份还原功能进行迁移,但我没用过这种方式,印象中好几年前在使用discz还是帝国cms在使用自带的备份迁移时,所有的数据都乱码了,折腾了半天。所以我还是愿意选择保险一些的办法。^_^

    接下来尝试PHPmyadmin,本地采用gzip本分后,传到远端,进行import,结果在导入dede_purview时出现了如下错误:

     

    #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
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8' at line 7 

     

    第一步,想着是数据库版本问题,就找了帝国备份王,以为他能解决这个问题。谁知道结果一样,会出现这样的问题。

    第二步,网上查的说是可以修改sql语句:

    其他人给出的解决办法
    SQL 查询:
    -- --------------------------------------------------------

    --
-- 表的结构 `dede_purview`
--
CREATETABLEIF NOTEXISTS `dede_purview` (
`mid` mediumint( 8 ) DEFAULT'0',
`typeid` smallint( 5 ) DEFAULT'0',
`rank` smallint( 6 ) DEFAULTNULL,
`pkey` varchar( 30 ) CHARACTERSETlatin1 NOTNULL,
`pvalue` text NOTNULL,
KEY`pkey` ( `pkey` ) USING BTREE) ENGINE = MYISAM DEFAULTCHARSET = utf8;

    
     
    MySQL 返回:
    #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
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8' at line 7
    ●把USING BTREE 去掉, 这是mysql server不兼容造成的。
    ●语句应该改成:

    CREATETABLEIF NOTEXISTS `dede_purview` (
`mid` mediumint( 8 ) DEFAULT'0',
`typeid` smallint( 5 ) DEFAULT'0',
`rank` smallint( 6 ) DEFAULTNULL,
`pkey` varchar( 30 ) CHARACTERSETlatin1 NOTNULL,
`pvalue` text NOTNULL,
KEY`pkey` USING BTREE ( `pkey` )) ENGINE = MYISAM DEFAULTCHARSET = utf8;

     

    事实上就是将 `pkey` ( `pkey` ) 后边的( `pkey` )  移到  USING BTREE 后边。

    然后的难度将本表的sql利用远端的phpmyadmin运行后,正常执行。

    搞定。

     

     

  • 我的QQ二维码
  • QQ群
  • 我的微信二维码
  • 微信公众号

没有评论,留下你的印记,证明你来过。


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。