mysql主从备份
mysql版本:mysql-5.6.14-win32
1、本地配置两个mysql数据库(mysql1{3316},mysql2{3326},mysql3{3336}),下面将mysql1设为主库,mysql2和mysql3设为从库。
2、在mysql1中创建一个backup用户:{grantreplicationslave,reload,superon*.*tobackup@'127.0.0.1'IDENTIFIEDby'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>stopslave;
mysql>changemastertomaster_host='127.0.0.1',master_port=3316,master_user='backup',master_password='123';
mysql>startslave;
6.查看设置是否正确:
mysql>showslavestatus\G;
主要是看以下两项是否为YES:
Slave_IO_Running:Yes
Slave_SQL_Running:Yes
7、经过上面配置,mysql1中数据库有变化,mysql2和3都会进行数据同步。
关联SQL:
SHOWVARIABLESLIKE'server_id%';
stopslave;
changemastertomaster_host='127.0.0.1',master_port=3316,master_user='backup',master_password='123';
startslave;
showslavestatus;
注意事项:
*将mysql1数据库考到mysql3数据库以后,data下面的auto.cnf文件的server-uuid,mysql1与mysql3必须不一样。
未解决问题:
当mysql1创建数据库(dd)后,mysql2会同步dd数据库,然后mysql1删除dd数据库,mysql2也会删除数据库,然后重启mysql2slave进程就报错了:
Querycauseddifferenterrorsonmasterandslave.Erroronmaster:message(format)='Columncountofmysql.%siswrong.Expected%d,found%d.CreatedwithMySQL%d,nowrunning%d.Pleaseusemysql_upgradetofixthiserror.'errorcode=1558;Erroronslave:actualmessage='noerror',errorcode=0.Defaultdatabase:'dd'.Query:'DROPDATABASE`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