Replication and Reserved Words
You can encounter problems when you attempt 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
event must be parsed by the slave prior to execution, so that the slave knows which database object or
objects would be affected; only after the event is parsed can the slave apply any filtering rules defined
by --replicate-do-db , --replicate-do-table , --replicate-ignoredb
, 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, write the names as quoted identifiers
using backtick characters (`).
For listings of reserved words by MySQL version, see Reserved Words, in the MySQL Server Version
Reference. For identifier quoting rules, see Section 9.2, “Schema Object Names”.
... zobacz całą notatkę