您当前的位置:首页 > 计算机 > 软件应用 > 数据库 > MySQL

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

时间:06-07来源:作者:点击数:

mysql主备模式:

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

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

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

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

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

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

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的权限

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

执行命令:

show master status;

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;#刷新权限

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

执行命令:show slave status\G;

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登录

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

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;

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

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门