mysql主备模式_centos7 mysql主备模式(读写分离)

mysql主备模式:

服务器A:192.168.100.71(主),简称71

服务器B:192.168.100.72(备),简称72

1、两台服务器均安装mariadb(或者mysql),本次是通过yum安装mariadb。

执行命令:yum install mariadb mariadb mariadb-server -y

6ab39a79daf72f89a4e8d4cdcad0a1c1.png

2、在71服务器上/etc/my.cnf添加内容如下:

[mysqld]

.........

server-id=1

log-bin=master-bin

log_bin_index =master-bin.index

binlog_do_db=database001  ##database001 是要同步的数据库的名称,后面验证数据同步时,就是同步该库的数据

binlog_ignore_db=mysql

user=mysql

da28549a7bc9c06264f876224bb11f58.png

3、在72服务器上/etc/my.cnf添加内容如下:

36c8beac26b98fb58f24af53c453dcd3.png

4、分别在主库71和备库72上,启动mysql

执行命令:

systemctl stop firewalld  #关闭防火墙(若服务器必须开启防火墙,可通过iptables设置相应规则,开放端口)

systemctl start mariadb  #启动mysql

4、在主库71上,登录mysql、创建同步数据的用户,并赋予用户进行replication slave到备库72的权限

执行命令:

mysql -uroot -p      #默认无密码,直接回车即可

create user 'sync'@'192.168.100.72' identified by '123456';  #创建用户sync,设置密码123456,并允许备库192.168.100.72登录

flush privileges;  #刷新权限

grant replication slave on *.* to 'sync'@'192.168.100.72' identified by '123456' with grant option;  #赋予用户sync进行replication slave到备库72的权限

f86af7eafe69d9d67b00428353bd0c81.png

5、在主库71上,查询master状态,并记录File、Position的值,后面会用到。

执行命令:

show master status;

0da83c72fa21d2d4f6699f9f39f2b6c9.png

6、在备库72上,登录mysql,并设置主库的相关信息,并启动slave

执行命令:

mysql -uroot -p     #默认无密码,直接回车即可

change master to master_host='192.168.100.71', master_port=3306, master_user='sync', master_password='123456', master_log_file='master-bin.000003', master_log_pos=1346;

说明:

master_host、master_port、master_password  #主库ip地址、端口、密码

master_log_file  #主库File,即步骤5中show master status中File的值

master_log_pos  #主库Position,即步骤5中show master status中Position的值

start slave;  #启动备库

flush privileges;  #刷新权限

f519d97602de0a2b6f9383c23246265a.png

7、在备库72上,登录mysql,查询slave状态

执行命令:show slave status\G;

24fcded92d4c09f2318a5efba9fc292f.png

Slave_IO_Running和Slave_SQL_Running的状态应该均为Yes。若字段Last_SQL_Error出现Error,可通过以下方式解决:

执行命令:

slave stop;

set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

slave start;

8、分别登录主库71、备库72,修改root用户的密码为123456,并开放远程客户端登录数据库的权限(主库、备库上均进行以下操作)

执行命令:

use mysql;  #使用mysql库

update user set password=password("123456") where user="root";  #修改root用户的密码为123456

grant all privileges on *.* to 'root'@'%' identified by '123456';  #设置所有ip能通过root 123456登录

18475a9712627b3729acc6b19d7c023c.png

9、通过远程工具,如navicat,分别连接到主库71、备库72上

26675277fa6a4408b3acc7b4da409f9f.png

10、在主库71上,进行创建数据库database001(database001和步骤2中配置文件my.cnf保持一致)、表test01等操作,在备库72上查看数据是否同步更新。

CREATE DATABASE `database001` CHARACTER SET utf8 COLLATE utf8_general_ci;

use database001 ;

CREATE TABLE IF NOT EXISTS `test01` (

`id` varchar(64) NOT NULL,

`object` varchar(128) DEFAULT NULL COMMENT '操作对象',

`action` varchar(128) DEFAULT NULL COMMENT '行为',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

805bc33d75df5fd185a1bce10a845d5e.png

备注:业务代码可连接主库71进行数据写入,备库72只做查询操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值