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

相关推荐