Edit: I might have answered my own question while going back thru the links for this post. I would still like to get insight from more experienced DBA's and perhaps make the information easier to find for anyone that might need it in the future.
I have 2 MySQL servers. One sitting right beside me, the other in a remote data center. Both servers are identical. Both are dedicated. Both are running Ubuntu 12.04 LTS, MySQL 5.5.28. These servers power our in house web application, 2 web sites, virtual mail for 9 domains and backend for MS Access. The slave is not replicating structure changes in the master.
I have reviewed: dev.mysql.com/doc/refman/5.0/en/replication-howto-slavebaseconfig.html dev.mysql.com/doc/refman/5.0/en/replication-howto-existingdata.html
And tracked down other issues with my configuration thanks to this question: serverfault.com/q/336888/143841. Where I posted an answer that solved both mine and his issues at that time. However, I am having trouble finding a real solution to ensure that structure queries are replicated right along with data queries.
Here is my configuration
Master:
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 6547573 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
my.cnf on master:
#master/slave replication
server-id=172868
log-bin=mysql-bin
log-error=mysql-bin.err
Slave:
mysql> show slave status\G; | pastebin
my.cnf on slave:
# master/slave configuration
server-id=1357749477
I'm not highly concerned about the error listed in the slave status report. I believe that issue was triggered by changes I made to the structure on the master. I'm trying to configure the slave to apply any structural changes that occur on the Master.
I found a reference to some slave settings in a mysql bug report: bugs.mysql.com/bug.php?id=956
> replicate-do-db=rate
> replicate-ignore-table=rate.votes
> replicate-ignore-table=rate.clicks
> replicate-wild-ignore-table=rate.%cache
But I'm having trouble finding clear documentation on their usage and repercussions.... Well, on this page I found some information that says it won't replicate any statement made after a USE db; statement. My ALTER statement was preceeded by a USE statement. But, I don't have replicate-do-db set. Then further down it states that database-level changes are applied if replicate-wild-do-table=% is set.
So, is "replicate-wild-do-table=%" the correct way to get complete replication? What are the ramifications of using this setting? What is the correct way to configure the slave for complete replication of all databases.