最近在研究mysql的主从备份,发现一个比较麻烦的问题,就是同步过程中出现错误而导致从数据库服务器无法再同步数据的问题.比如,有两台数据库服务器db1和db2,db1作为主数据库服务器,db2作为从数据库服务器,现在假设db1和db2的主从配置已经成功了.这时候我们在db1上执行如下操作:
db1数据库上执行:
mysql>create database test_db;
Query OK, 1 row affected (0.00 sec)
那么会显示我们数据库创建成功,然后在从数据库服务器db2上查看也可以看到数据库test_db已经成功同步过来了,这时我们再在db1上执行如下命令:
db1数据库上执行:
mysql>create database test_db;
ERROR 1007 (HY000): Can't create database 'test_db'; database exists
这个提示我们已经存在数据库test_db了,这个很正常,因为我们之前已经创建了一个,这个时候我们再看从数据库服务器上的slave状态,如下:
db2数据库上执行:
mysql>show slave status;
我们可以在状态信息中看到如下的信息:
Error 'Can't create database 'test_db'; database exists' on query. Default database: 'test_db'. Query: 'create database test_db'
然后,我在db1上进行的任何操作都无法再同步到db2上了,这样实际上主从备份就已经失效了,然后我们也只有手动删除数据库和重置slave了,目前还没有找到比较好的解决办法,或许是我没有找到相关的配置吧,再找找看:-)