mysql双从_【mysql】mysql的数据库主从2(双主双从)

本文详细介绍了如何在四台服务器上配置MySQL的双主双从架构,包括修改配置文件、设置主从ID、启用日志、配置从机、重启服务、开启防火墙端口、创建账户授权和主从复制的步骤,确保主从数据库同步运行。
摘要由CSDN通过智能技术生成

在搭建mysql的数据库双主双从之前,我们在四台不同的服务器上搭建mysql数据库,安装的步骤在下面的博客中:

linux安装mysql :https://blog.csdn.net/wangyunzhao007/article/details/104230509

一、架构图

2e4957ba1b002634aee67b0a691ec546.png

二、配置

1.主机配置

第一台主机的配置(192.168.157.130)

#修改配置文件

vim /etc/my.cnf

在my.cnf中加入以下配置文件

#主服务器唯一ID

server-id=1

#启用二进制日志

log-bin=mysql-bin

# 设置不要复制的数据库(可设置多个)

binlog-ignore-db=mysql

binlog-ignore-db=information_schema

#设置需要复制的数据库

binlog-do-db=需要复制的主数据库名字

#设置logbin格式

binlog_format=STATEMENT

# 在作为从数据库的时候, 有写入操作也要更新二进制日志文件

log-slave-updates

#表示自增长字段每次递增的量,指自增字段的起始值,其默认值是1, 取值范围是1 .. 65535

auto-increment-increment=2

# 表示自增长字段从哪个数开始,指字段一次递增多少,他的取值范围是1 .. 65535

auto-increment-offset=1

第二台主机的配置(192.168.157.133)

#修改配置文件

vim /etc/my.cnf

#主服务器唯一ID

server-id=3

#启用二进制日志

log-bin=mysql-bin

# 设置不要复制的数据库(可设置多个)Java

binlog-ignore-db=mysql

binlog-ignore-db=information_schema

#设置需要复制的数据库

binlog-do-db=需要复制的主数据库名字

#设置logbin格式

binlog_format=STATEMENT

# 在作为从数据库的时候,有写入操作也要更新二进制日志文件

log-slave-updates

#表示自增长字段每次递增的量,指自增字段的起始值,其默认值是1,取值范围是1 .. 65535

auto-increment-increment=2

# 表示自增长字段从哪个数开始,指字段一次递增多少,他的取值范围是1 .. 65535

auto-increment-offset=2

2.从机配置

第一台从机的配置(192.168.157.129)

#修改配置文件

vim /etc/my.cnf

#从服务器唯一ID

server-id=2

#启用中继日志

relay-log=mysql-relay

第二台从机的配置(192.168.157.132)

#修改配置文件

vim /etc/my.cnf

修改配置文件: vim /etc/my.cnf

#从服务器唯一ID

server-id=4

#启用中继日志

relay-log=mysql-relay

三、主机,从机都重启mysql服务

#重启mysql服务器

systemctl restart mysqld

#查看mysql的状态

systemctl status mysqld

重启mysql服务器,查看mysql的状态,如下如是启动成功的状态,代表重启成功;

e17a1917713526778d8cd44c872cce65.png

四、主机从机都关闭防火墙或者将3306端口打开

1.关闭防火墙

#关闭防火墙

service firewalld stop/systemctl stop firewalld

#开启防火墙

service firewalld start/systemctl start firewalld

#查看防火墙的状态

systemctl status firewalld

关闭防火墙之后我们需要查看防火墙的状态,下图分别使我们开启防火墙之后和关闭防火墙之后分查看防火墙的状态:

6ffc2f41032d535851d0ad6657c52dae.png

2.在防火墙开端口 (如果选择了关闭防火墙就不用做这步了)

#开3306端口

firewall-cmd --permanent --zone=public --add-port=3306/tcp

添加成功如下图所示,这时候还需要重新载入防火墙才能生效

3b92737522c92710b85f6a0e2e75cef4.png

#防火墙重新载入

firewall-cmd --reload

重新载入防火墙成功

58dd54ca922d09f1ef640d9ec925b114.png

然后验证是否添加成功

#查看是否添加成功

firewall-cmd --zone=public --query-port=3306/tcp

验证成功,已经添加完毕

bc505582bd4601a07581372533c3e384.png

五、在两台主机上建立账户并授权给从机(给从机分配账号,用来连接)

1.在liunx系统中登录mysql的主机

#u后是root账户,-p后密码是123456

mysql -uroot -p123456

2.给从机分配一个账号用来做主从复制

#在主机MySQL里执行授权命令

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';

3.查看两个master的状态,并记录必要信息,在从机连接时需要。

#查询master的状态

show master status;

输入命令后我们可以看到一下几个信息 :

38b2398aea8e7f4e42f8bd830dbfd483.png

记录下File和Position的值

执行完此步骤后不要再操作主服务器MySQL,防止主服务器状态值变化

六、开启主从复制

1.两组主从

先做其中一组(130和129的)

在liunx系统中登录mysql的从机(129)

#u后是root账户,-p后密码是123456

mysql -uroot -p123456

停止主从复制(不论有没有开启)

#停止从服务器复制功能

stop slave;

重新配置主从

reset master;

配置复制的主机(129复制130,汉字需要改成第五步中上图show master中的值)

#复制主机的命令

CHANGE MASTER TO MASTER_HOST='主机的IP地址',

MASTER_USER='slave',

MASTER_PASSWORD='123123',

MASTER_LOG_FILE='mysql-bin.日志具体数字',MASTER_LOG_POS=位点具体值;

示例,这是根据我的信息写的命令:

CHANGE MASTER TO MASTER_HOST='192.168.157.130',

MASTER_USER='slave',

MASTER_PASSWORD='123456',

MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=2635;

启动复制

start slave;

查看主从复制的状态

#查看从服务器状态

show slave status\G;

看到下面两个参数都是Yes,则说明主从配置成功!

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

则证明主从复制成功了。

db1a6aeffc5c54e5495f5be59c6046ea.png

另外一组是一样的,照着上边的过程搭建一遍。

2.主机互为主从

133复制130

刚刚130的从机129复制了130,133的命令和步骤和刚刚129复制的一样。两个主机互为主从也就是说,两个主机互相复制。

停止主从复制(不论有没有开启)

#停止从服务器复制功能

stop slave;

重新配置主从

reset master;

配置复制的主机(133复制130,汉字需要改成第五步中上图130主机show master中的值)

#复制主机的命令

CHANGE MASTER TO MASTER_HOST='主机的IP地址',

MASTER_USER='slave',

MASTER_PASSWORD='123123',

MASTER_LOG_FILE='mysql-bin.日志具体数字',MASTER_LOG_POS=位点具体值;

示例,这是根据我的信息写的命令:

CHANGE MASTER TO MASTER_HOST='192.168.157.130',

MASTER_USER='slave',

MASTER_PASSWORD='123456',

MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=2635;

启动复制

start slave;

查看主从复制的状态

#查看从服务器状态

show slave status\G;

看到下面两个参数都是Yes,则说明主从配置成功!

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

则证明133复制130主从复制成功了。

130复制133

停止主从复制(不论有没有开启)

#停止从服务器复制功能

stop slave;

重新配置主从

reset master;

配置复制的主机(130复制133,汉字需要改成第五步中上图133主机show master中的值)

#复制主机的命令

CHANGE MASTER TO MASTER_HOST='主机的IP地址',

MASTER_USER='slave',

MASTER_PASSWORD='123123',

MASTER_LOG_FILE='mysql-bin.日志具体数字',MASTER_LOG_POS=位点具体值;

示例,这是根据我的信息写的命令:

CHANGE MASTER TO MASTER_HOST='192.168.157.133',

MASTER_USER='slave',

MASTER_PASSWORD='123456',

MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=154;

启动复制

start slave;

查看主从复制的状态

#查看从服务器状态

show slave status\G;

看到下面两个参数都是Yes,则说明主从配置成功!

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

则证明主从复制成功了。

两次的主从都成功了,说明互为主从就搭建完毕了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值