一,原理
简答来说,就是将主数据库的所有操作都记录到一个bin_log文件中,然后将bin_log文件复制到从数据库,进行回放,
从而实现将数据同步到从节点的目的。
二,注意事项
主数据库版本高于3.2,从数据库版本>=主数据库版本,因为不同版本的bin_log文件格式可能不一样,通常来讲,
软件都是向下兼容,高版本兼容低版本,所以要保证从数据库的版本不低于主数据库版本,这样才能保证bin_log文件正
常回放。
三,Mysql主从复制配置步骤
Linux环境安装Mysql数据库,主数据库IP:192.168.204.128,从数据库IP:192.168.204.129
主数据库配置:
(1),修改配置文件
(2),建立同步账号
进入主数据库mysql操作界面,在主数据库上为从数据库建立一个连接帐户,该帐户必须授予REPLICATION SLAVE权限。
这样从数据库就可以通过REPLICATION对主数据库进行双机热备的功能操作。
操作指令如下:
mysql> grant replication slave on *.* to 'replication'@'192.168.204.129' identified by '123456';
mysql> flush privileges;
创建好同步连接帐户后,我们可以在从服务器(Slave)上用replicat帐户对主服务器(Master)数据库进行访问下,看下是否能连接成功。
在从服务器(Slave)上输入如下指令:
如果能登录成功,说明可以对这两台服务器进行双机热备进行操作
(3),重启Mysql,查看主数据库状态
注意看里面的参数,特别前面两个File和Position,在从服务器(Slave)配置主从关系会有用到的。
从数据库配置:
(1),修改配置文件
(2),重启Mysql服务,进入数据库用change mster 语句指定同步位置
mysql>stop slave; //先停步slave服务线程,这个是很重要的,如果不这样做会造成以下操作不成功。
mysql>change master to
>master_host='192.168.204.128',master_user='replication',master_password='123456',
> master_log_file='mysql-bin.000003',master_log_pos=107;
注:master_log_file, master_log_pos由主服务器(Master)查出的状态值中确定。也就是刚刚叫注意的。master_log_file对应File, master_log_pos对应Position
如果操作失败,则要重新设置slave。指令如下
mysql>stop slave;
mysql>reset slave;
之后停止slave线程重新开始指定同步位置。成功后,则可以开启slave线程了。
mysql>start slave;
(3),查看从数据库状态
查看下面两项值均为Yes,即表示设置从服务器成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
四,测试同步
在主服务器(192.168.204.128)Mysql的test数据库中新建一张表并插入数据
然后查看从服务器(192.168.204.129)Mysql中的test数据库中的数据,发现是一致的,说明双机热备配置成功