You can encounter problems when you are attempting to replicate
        from an older master to a newer slave and you make use of
        identifiers on the master that are reserved words in the newer
        MySQL version running on the slave. An example of this is using
        a table column named current_user on a 4.0
        master that is replicating to a 4.1 or higher slave, because
        CURRENT_USER is a reserved word beginning in
        MySQL 4.1. Replication can fail in such cases with Error 1064
        You have an error in your SQL syntax...,
        even if a database or table named using the reserved
        word or a table having a column named using the reserved word is
        excluded from replication. This is due to the fact
        that each SQL statement must be parsed by the slave prior to
        execution, so that the slave knows which database object or
        objects would be effected by the statement; only after the
        statement is parsed can the slave apply any filtering rules
        defined by --replicate-do-db,
        --replicate-do-table,
        --replicate-ignore-db, and
        --replicate-ignore-table.
      
To work around the problem of database, table, or column names on the master which would be regarded as reserved words by the slave, do one of the following:
              Use one or more ALTER TABLE
              statements on the master to change the names of any
              database objects where these names would be considered
              reserved words on the slave, and change any SQL statements
              that use the old names to use the new names instead.
            
              In any SQL statements using these database object names,
              set the names off using backtick characters
              (`).
            
For listings of reserved words by MySQL version, see Reserved Words, in the MySQL Server Version Reference.

User Comments
Add your own comment.