mysql主从备份

mysql版本:mysql-5.6.14-win32
1、本地配置两个mysql数据库(mysql1{3316},mysql2{3326},mysql3{3336}),下面将mysql1设为主库,mysql2和mysql3设为从库。
2、在mysql1中创建一个backup用户:{grant replication slave,reload,super on *.* to backup@'127.0.0.1' IDENTIFIED by '123';};
3、对mysql1服务器配置进行修改,打开mysql/my.ini文件,在[mysqld]下面添加如下内容:
server-id=10
log-bin=E:\mysql-5.6.14-win32-1\log-bin.log
   其中:server-id:为主服务器mysql1的ID值,log-bin:二进制变更日值。
4、对mysql2和mysql3(mysql3将20改为30)服务器配置进行修改,打开my.ini文件,在[mysqld]下面添加如下内容:
        #MYSQL主从配置
server-id=20
#log-bin=mysql-bin
relay-log=relay-bin
relay-log-index=relay-bin-index
5、连接MYSQL2和3,然后执行下面命令:(每次重启都要重新配置)
mysql> stop slave;
mysql> change master to master_host='127.0.0.1',master_port=3316,master_user='backup',master_password='123';
mysql> start slave;
6.查看设置是否正确:
mysql> show slave status\G;
  主要是看以下两项是否为YES:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
7、经过上面配置,mysql1中数据库有变化,mysql2和3都会进行数据同步。

关联SQL:
SHOW VARIABLES LIKE 'server_id%';
stop slave;
change master to master_host='127.0.0.1',master_port=3316,master_user='backup',master_password='123';
start slave;
show slave status;

注意事项:
    *将mysql1数据库考到mysql3数据库以后,data下面的auto.cnf文件的server-uuid,mysql1与mysql3必须不一样。

未解决问题:
当mysql1创建数据库(dd)后,mysql2会同步dd数据库,然后mysql1删除dd数据库,mysql2也会删除数据库,然后重启mysql2 slave进程就报错了:
Query caused different errors on master and slave.     Error on master: message (format)='Column count of mysql.%s is wrong. Expected %d, found %d. Created with MySQL %d, now running %d. Please use mysql_upgrade to fix this error.' error code=1558 ; Error on slave: actual message='no error', error code=0. Default database: 'dd'. Query: 'DROP DATABASE `dd`'
    很明显,mysql2重启后,又执行了dd数据库的删除操作,可是此时dd数据库已经不存在了。报错了!为什么会重复执行呢,现在还是没有明白。

参考文档:
http://www.360doc.com/content/11/1207/16/834950_170418806.shtml
http://blog.csdn.net/q98842674/article/details/12094777
http://www.cnblogs.com/hustcat/archive/2009/12/19/1627525.html

猜你喜欢

转载自rewqrewqrewqrew.iteye.com/blog/2163948