在MySQL4.0.21的环境下面用 mysqldump 出来了sql文件,  在另外一台MySQL4.0.21上测试source  没有报错,数据导入很正常。但是在MySQL5下面 source就不行了。有没有哪位大侠指点一下啊。

解决方案 »

  1.   

    应该不会有问题啊,MYSQL5.0保持了向下兼容啊。会有一些语法上的区别,比如 tyep=myisam现在改成了 engine=myisam.贴出你的错误信息检查一下。
      

  2.   

    都是windows下面的,     
    具体错误信息,好像是提示没有“****”表,  是不是要在MySQLdump上加一些什么参数呢?
      

  3.   

    都是用root用户导吗?看提示,该表不存在。
    你可以在导出的脚本中搜索该表的建表语句。
    在每一个建表的末尾:
    全文替换type=myisam  为 engine=myisam
      

  4.   

    前后的数据库名字不同, 有影响没有?  我导出的时候,那个数据库是 ims_gzrt   然后我在新的机器上新建的数据库是  gzrt用root登陆之后,use  gzrt
    source D:\ims_grzt.sql就不行了。
    sql文件有30M, 好难搜索替换啊,用的notepad++     
      

  5.   

    搜索了  没有 type=myisam 
      

  6.   

    不只是TYPE= 这种有问题,还有一些其它的语句。
    你只能想办法先找到错误的语句,然后改为MYSQL5的语句后再执行。
      

  7.   

    搜索,千万不要用蠢重的notepad++,那个编辑器编辑小文件还行。
    用Ultraedit吧。数据库名最好一样。
    估计导出的脚本里头还有别的错。
      

  8.   

    除了用phpmyadmin 来做, 有其他的方法可以把4.0.21转到5来吗?
      

  9.   

    D:\MySQL5.1\bin>mysql  --default-character-set=big5 -u root -p ims_
    test <D:\ims_grzt.sql
    Enter password:
    ERROR 1064 (42000) at line 150: 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 'RETURN double default NULL,
      L char(1) default NULL,
      RECIPT int(11) default N' at line 20
    150行开始的sql是:CREATE TABLE dn_redbooks (
      RECORD int(11) NOT NULL auto_increment,
      REF_INV_NO int(11) default '0',
      DATE int(11) default NULL,
      NO int(11) default NULL,
      AC_CHA varchar(10) NOT NULL default '',
      SALE char(3) default NULL,
      DEL int(11) default NULL,
      AMOUNT double default NULL,
      AMT1 double default NULL,
      AMT2 double default NULL,
      AMT3 double default NULL,
      AMT4 double default NULL,
      AMT5 double default NULL,
      AMT6 double default NULL,
      RECIVED double default NULL,
      CA char(3) default NULL,
      DOR int(11) default NULL,
      DISCOUNT double default NULL,
      RETURN double default NULL,
      L char(1) default NULL,
      RECIPT int(11) default NULL,
      S char(2) default NULL,
      T int(11) default NULL,
      E int(11) default NULL,
      FOC varchar(40) default NULL,
      CNT int(11) default NULL,
      STATUS varchar(8) default NULL,
      SFOC double default NULL,
      NO1 int(11) default NULL,
      REMARK varchar(80) default NULL,
      PRIMARY KEY  (RECORD),
      KEY NO_IDX (NO),
      KEY RECORD_IDX (RECORD)
    ) TYPE=InnoDB;--
    -- Dumping data for table `dn_redbooks`
    --
      

  10.   

    刚刚把TYPE=InnoDB;  全部替换成了engine=InnoDB;错误还是一样的。
      

  11.   

    `RETURN` double default NULL
    试试
      

  12.   

     RETURN double default NULL,RETURN出了问题,把表结构中这一句的RETURN改成其他的,比如 xxx
     xxx double default NULL,
      

  13.   

    RETURN double default NULLreturn是关键字,需要用`return`引用起来mysqldump 的时候加上参数 
    --allow-keywords