欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

构建MySQL主主复制架构

程序员文章站 2022-04-26 14:50:46
...

MySQL主主复制结构区别于主从复制结构。在主主复制结构中,两台服务器的任何一台上面的数据库存发生了改变都会同步到另一台服务器

Mysql主主复制架构配置

MySQL主主复制结构区别于主从复制结构。在主主复制结构中,两台服务器的任何一台上面的数据库存发生了改变都会同步到另一台服务器上,,这样两台服务器互为主从,并且都能向外提供服务。 这就比使用主从复制具有更好的响应性能。

配置过程

具体Mysql的安装我就不在阐述,在这一篇的Mysql的主从架构的配置中有详细介绍
erver1:192.168.1.108
server2: 192.168.1.110


1.创建用户并授权
server1:
mysql> GRANT REPLICATION SLAVE ON *.* TO 'server2'@'192.168.1.110' IDENTIFIED BY 'server2';
server2:
mysql> GRANT REPLICATION SLAVE ON *.* TO 'server1'@'192.168.1.108' IDENTIFIED BY 'server1';

2.修改Mysql的主配置文件
server1:
[mysqld]
server-id = 10
log-bin = mysql-bin
replicate-do-db = mydb
auto-increment-increment = 2 //每次增长2
auto-increment-offset = 1 //设置自动增长的字段的偏移量,即初始值为2
启动Mysql服务:
service mysqld restart
server2:
[mysqld]
server-id = 20
log-bin = mysql-bin
replicate-do-db = mydb
auto-increment-increment = 2 //每次增长2
auto-increment-offset = 2 //设置自动增长的字段的偏移量,即初始值为2
启动Mysql服务:
service mysqld restart
注:二都只有server-id和 auto-increment- offset不同
auto-increment-increment的值应设为整个结构中服务器的总数,本案例用到两台服务器,所以值设为2。


3.重新启动两个服务器
service mysqld restart


4.为了让两个数据库一样,我们备份其中一个数据库,然后在另一个数据库上恢复,这样是两个数据库一开始都是一样的。
在server1上操作:
mysqldump --databases nange > /tmp/nange.sql
在server2上操作:
创建一个与mydb同名的空数据库
mysql
> CREATE DATABASE mydb;
>\q
scp 192.168.1.108:/tmp/mydb.sql ./
mysql -uroot -p mydb


5.然后两个服务器相互通告二进制日志的位置并启动复制功能:
在server1上:
mysql
> CHANGE MASTER TO
> MASTER_HOST='192.168.1.110',
> MASTER_USER='server2',
> MASTER_PASSWORD='server2';
mysql > START SLAVE;
在server2上:
mysql
> CHANGE MASTER TO
> MASTER_HOST='192.168.1.108',
> MASTER_USER='server1',
> MASTER_PASSWORD='server1';
mysql > START SLAVE;


6.查看,并验证:
分别在两个数据库服务器上查看
mysql > START SLAVE;
然后查看数据库和表,你会发现内容是一样的,这样就是整个主主Mysql的架构的配置过程。

构建MySQL主主复制架构