Mysql的双机热备

首先,设置my.ini里面的参数,如果之前没有设置过的,直接在末尾增添如下设置

第一台(192.168.0.1):

#ID
server-id=1 
#日志位置
log-bin=C:\Program Files (x86)\MySQL\MySQL Server 5.5
#要同步的库名
binlog-do-db = test105
#不记录日志的库,即不需要同步的库
binlog-ignore-db=mysql
#用从属服务器上的日志功能
log-slave-updates
#经过1日志写操作就把日志文件写入硬盘一次(对日志信息进行一次同步)。n=1是最安全的做法,但效率最低。默认设置是n=0。
sync_binlog=1
#auto_increment,控制自增列AUTO_INCREMENT的行为
#用于MASTER-MASTER之间的复制,防止出现重复值,
#auto_increment_increment=n有多少台服务器,n就设置为多少,
#auto_increment_offset=1设置步长,这里设置为1,这样Master的auto_increment字段产生的数值是:1, 3, 5, 7, …等奇数ID
auto_increment_offset=1
auto_increment_increment=2
#进行镜像处理的数据库
replicate-do-db = test105
#不进行镜像处理的数据库
replicate-ignore-db= mysql

第二台(192.168.0.2):

#ID
server-id=2
#日志位置
log-bin=C:\Program Files (x86)\MySQL\MySQL Server 5.5
#要同步的库名
binlog-do-db = test105
#不记录日志的库,即不需要同步的库
binlog-ignore-db=mysql
#用从属服务器上的日志功能
log-slave-updates
#经过1日志写操作就把日志文件写入硬盘一次(对日志信息进行一次同步)。n=1是最安全的做法,但效率最低。默认设置是n=0。
sync_binlog=1
#auto_increment,控制自增列AUTO_INCREMENT的行为
#用于MASTER-MASTER之间的复制,防止出现重复值,
#auto_increment_increment=n有多少台服务器,n就设置为多少,
#auto_increment_offset=1设置步长,这里设置为1,这样Master的auto_increment字段产生的数值是:1, 3, 5, 7, …等奇数ID
auto_increment_offset=2
auto_increment_increment=2
#进行镜像处理的数据库
replicate-do-db = test105
#不进行镜像处理的数据库
replicate-ignore-db= mysql

NO1:Master1(192.168.0.1)的情况

#mysql –u root –p 1234
mysql> show master status;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000001|      107 | test         | mysql            |

+------------------+----------+--------------+----------

NO2:Master(192.168.0.2)的情况

#mysql –u root –p 1234
mysql> show master status;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000002|      107 | test         | mysql            |

+------------------+----------+--------------+------

建立权限帐户,实现同步

a.创建账户并授予REPLICATION SLAVE权限

mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '1234';   //建立一个用户名为slave的帐户
mysql> FLUSH PRIVILEGES;   //刷新相关权限表

Master1(192.168.0.1)上操作如下:

mysql> stop slave;  //停止slave
mysql>change master to master_host='192.168.0.2', master_user='slave', master_password='1234', master_log_file='mysql-bin.000002', master_log_pos=107;  //修改当前的Master的值,因为是互为备份,所以Master1(192.168.0.1)的master为Master2(192.168.0.2),Master2设置复制的用户名为slave,密码是1234,上面通过 show master status我们得知,log_file是mysql-bin.000002,postion是107。
mysql>start slave;    //开始salve,开始同步
mysql>show slave status;   //检测slave状态,如果Slave_IO_Running: Yes    Slave_SQL_Running: Yes    Seconds_Behind_Master: 

Master1(192.168.0.2)上操作如下:

mysql> stop slave;  //停止slave
mysql>change master to master_host='192.168.0.1', master_user='slave', master_password='1234', master_log_file='mysql-bin.000001', master_log_pos=107;  //修改当前的Master的值,因为是互为备份,所以Master2(192.168.0.2)的master为Master1(192.168.0.1),Master2设置复制的用户名为slave,密码是1234,上面通过 show master status我们得知,log_file是mysql-bin.000001,postion是107。
mysql>start slave;    //开始salve,开始同步
mysql>show slave status\G;   //检测slave状态,如果Slave_IO_Running: Yes    Slave_SQL_Running: Yes    Seconds_Behind_Master: 

Mysql的双机热备_第1张图片
两个mysql均获得如下结果表示成功,可以在(192.168.0.1)数据库中test105中新建一张表,如果(192.168.0.2)数据库test105中也建立同样一张,说明单项成功,再在(192.168.0.2)中的test105中新建一张表,在(192.168.0.1)数据库test105中查看结果,如果生成了同一张,则表示双向备份成功。
原博客是:https://blog.csdn.net/ly199108171231/article/details/78455232,由于这篇文章的源内容看起来比较吃力,有些地方是空白看不见的,所以手动备份翻译一次,也做一次记录

你可能感兴趣的:(Mysql)