Linux-Mysql主主架构

我的测试环境是mysql+ Mariadb数据库,我这里拿2台服务器来做测试
提示:两台服务器的数据库版本要相同

修改配置文件(默认是my.cnf)

注意:下面所提到的参数全部都是在[mysqld]节点下添加

像主从同步一样,在这个文件的[mysqld]节点下添加参数,两台服务器都要添加,注意server-id不要相同

#A服务器 
server-id=1 
log-bin=mysql-bin 
auto_increment_offset = 1#表示该数据库的自增ID从1开始 auto_increment_increment = 2#设置为服务器的总数量,比如我们这里用2台服务器做测试,那么就设置为2。这里设置为2,表示的是每次自增时增长2,即该台数据库的自增ID的顺序为:1,3,4,7,9…… 
log-slave-updates = true

 

#B服务器 
server-id=2 
log-bin=mysql-bin 
auto_increment_offset = 2#表示该数据库的自增ID从1开始 
auto_increment_increment = 2#设置为服务器的总数量,比如我们这里用2台服务器做测试,那么就设置为2。这里设置为2,表示的是每次自增时增长2,即该台数据库的自增ID的顺序为:1,3,4,7,9…… 
log-slave-updates = true

 

修改后的配置文件如下图:

file

file

接下来就简单了,跟主从同步的操作基本上一致了,首先是添加用来同步用的账号密码。在A、B两台服务器上添加相同的账号密码

mysql -uroot -p123456 
grant replicatiON slave on *.* to repl@'%' identified by '123456'; 
exit

 

添加完毕账号后,重启数据库服务systemctl restart mysqld

重启完毕后,重新登录两台服务器的数据库,查看日志文件的信息并记录File和Position信息

mysql -uroot -p123456 
show master status;

 

file

file

因为测试两个服务器都是全新安装的数据库,所以这些信息都是一样的。接下来在配置同步服务,首先在A服务器配置

#A服务器 
change master to master_host='B服务器的IP',master_port=3306,master_user='B服务器的数据库账号repl',master_password='B服务器的数据库密码123456',master_log_file='mysql-bin.000001',master_log_pos=313; 
log_file就是主服务器File的值,这里要填写B服务器查询出来的值 
master_log_pos就是主服务器Position的值,这里要填写B服务器查询出来的值

 

#B服务器
change master to master_host='A服务器的IP',master_port=3306,master_user='A服务器的数据库账号repl',master_password='A服务器的数据库密码123456',master_log_file='mysql-bin.000001',master_log_pos=313;
log_file就是主服务器File的值,这里要填写A服务器查询出来的值
master_log_pos就是主服务器Position的值,这里要填写A服务器查询出来的值

然后在A、B服务器上执行start slave;开启同步在执行show slave status\G;查看同步状态

file

file

当看到以下两个参数是YES就说明配置已经生效

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

 

剩下的自己可以创建个数据库测试一下

版权声明:
作者:江霁月
链接:https://www.jiangjiyue.com/maintenance/database/211.html
来源:江霁月的私人小屋
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
< <上一篇
下一篇>>
文章目录
关闭
目 录