windows下 主主复制 搭建
程序员文章站
2024-03-21 09:02:58
...
主主复制的原理图
作用: 单向复制有利于健壮性、速度和系统管理:
•主服务器/从服务器设置增加了健壮性。主服务器出现问题时,你可以切换到从服务器作备份。
•通过在主服务器和从服务器之间切分处理客户查询的负荷,可以得到更好的客户响应时间。SELECT查询可以发送到从服务器以降低主服务器的查询处理负荷。但修改数据的语句仍然应发送到主服务器,以便主服务器和从服务器保持同步。如果非更新查询为主,该负载均衡策略很有效,但一般是更新查询。
•使用复制的另一个好处是可以使用一个从服务器执行备份,而不会干扰主服务器。在备份过程中主服务器可以继续处理更新。
MySQL提供了数据库的同步功能,这对我们事先数据库的容灾、备份、恢复、负载均衡等都是有极大帮助的。
开始搭建:
首先我们得有两台不同端口的mysql连接
我的是master【3306】和master1[相当于从数据库3307]
- 给两台数据库连接建立用户
打开master新建查询
GRANT REPLICATION SLAVE,RELOAD,SUPER ON . TO aaa@qq.com’%’
IDENTIFIED BY ‘123456’;
打开master2
GRANT REPLICATION SLAVE,RELOAD,SUPER ON . TO aaa@qq.com’%’
IDENTIFIED BY ‘123456’;
2.修改mysql的配置文件
master的my.ini
[mysqld]
server-id = 1
log-bin = mysql-bin
auto-increment-increment= 2 # 应设为整个结构中服务器的总数
auto-increment-offset = 1 # 设定数据库中自动增长的起点,避免两台服务器数据同步时出现主键冲突
master1的my.ini
[mysqld]
server-id = 2
log-bin = mysql-bin
auto-increment-increment= 2
auto-increment-offset = 2
3.操作master
CHANGE MASTER TO master_host = '127.0.0.1',
master_port = 3307,#注意连接 master1
master_user = 'mysql_backup',
master_password = '123456',
master_log_file = 'mysql-bin.000015',#master1中的show master status;的file
master_log_pos = 1813;#master1 中的 position
flush privileges;#刷新权限
start slave;
stop slave;#执行之前先stop slave
show master status;
Show slave status
操作master1
CHANGE MASTER TO master_host = '127.0.0.1',
master_user = 'mysql_backup',
master_password = '123456',
master_log_file = 'mysql-bin.000011',#master 中的file
master_log_pos = 2040;#master 中的position
flush privileges;#刷新权限
stop slave;#记住先关闭再执行
start slave;
show master status;
Show slave status
4.测试
master 中的IO 线程和SQL 线程都是Yes
master1
master1 中的IO 线程和SQL 线程都是Yes
这时候我们就可以分别到数据表中添加数据,无论我们在master中加入数据还是master1加入数据,数据源都是双向同步的,那就ok