Mysql主从设置

我的博客

说明

两台linux服务器进行主从实验
mysql:mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar
主(写):192.168.198.221
从(读):192.168.198.222
需要mysql初始环境一样

原理:

  1. 主服务器建立2进制日志,每产生语句或磁盘变化,写进日志
  1. 从服务器监听主服务器建立relaylog(中继日志)
  2. 主服务器建立授权复制账号,从服务器利用复制账号来监听主服务器的日志notice:
    所有的mysql服务器都有1个独一无二的id server_id

主从设置

第一步,编辑my.cnf

vi /etc/my.cnf

主master:

log-bin=mysql-bin  #写二进制日志 
binlog-format=mixed
server-id=221   #同一局域网内一般为ip的后3位

从slave:

relay-log=mysql-relay
server-id=222       #同一局域网内一般为ip的后3位

第二步:重启 主,从mysql服务

sudo service mysqld restart                   #重启

第三步:

主: 创建账号:repl 密码:!QAZ2wsx

mysql -uroot -p              #进入mysql
grant replication client,replication slave on *.* to 'repl'@'%' identified by '!QAZ2wsx;    #创建账号
show master status;          #查看当前master二日志进制状态

Mysql主从设置_第1张图片

从: 抄主服务器日志,主服务器的日志位置,如上图

#进入mysql
mysql -uroot -p     
#抄主服务器日志
change master to 
master_host='192.168.198.221',
master_user='repl',
master_password='!QAZ2wsx', 
master_log_file='mysql-bin.000001',
master_log_pos=457;
Mysql主从设置_第2张图片
show  slave status \G   #查看从机slave状态
#如果状态不是配置的机器可以重置  重新执行抄主服务器的代码
reset slave   #重置  
Mysql主从设置_第3张图片

启动slave

start slave;       #启动slave
show slave status \G   #再次查看从机slave状态
Mysql主从设置_第4张图片

测试

主:插入测试数据

-- 创建数据库--
CREATE DATABASE test;
-- 进入数据库--
use test;
-- 创建表--
CREATE TABLE `test` (
 `id` INT NOT NULL,
 `test` VARCHAR (255) NULL,
 PRIMARY KEY (`id`)
);
-- 插入数据--
INSERT INTO `test`.`test` (`id`, `test`) VALUES ('1', '1');

Mysql主从设置_第5张图片

主:查看数据

SELECT * FROM `test`;

Mysql主从设置_第6张图片

从:查看数据

-- 进入test数据库 --
use test;
-- 查看数据-- 
SELECT * FROM `test`;
Mysql主从设置_第7张图片

你可能感兴趣的:(Mysql主从设置)