代码之家  ›  专栏  ›  技术社区  ›  aurora

mysql复制不兼容语句问题

  •  1
  • aurora  · 技术社区  · 15 年前

    我想安装一个新的mysql数据库从服务器,运行比master=>5.0.75更新的mysql=>5.1.41版本,据我所知,这通常应该没有问题。但是,由于我在5.0.75中使用了一个SQL语句,显然在5.1.41中不再工作,因此设置复制失败:

    引起麻烦的陈述如下:

    DELETE FROM tab1 t1
    USING       tab1 t1, tab2 t2
    WHERE       t2.field1 = ...
    AND         t2.field2 = ...
    AND         t1.field1 = t2.field2;
    

    此语句在5.0.75上运行得很好,在5.1.41上,我在slave状态下收到以下错误消息:

    ...
    Last_SQL_Errno: 1064
    Last_SQL_Error: Error '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 't1
                    USING       tab1 t1, tab2 t2
                    ...
    ...
    

    有什么想法,怎么了,怎么办?

    谢谢!

    更新

    好吧,我自己在slave上编译了5.0.75来解决这个问题。。。不过,我还是很感兴趣,到底发生了什么,以及如何处理这些问题。谢谢。

    1 回复  |  直到 15 年前
        1
  •  -1
  •   John M    15 年前

    对于这样的错误(不重要),可以在my.ini文件中过滤掉。

    # skip replication errors
    slave-skip-errors=1062,1136,1146
    

    或者修改有问题的代码,使其版本友好。