mysql主从复制系列(3)——一主多从搭建

一主多从架构

在主库读取请求压力很是大的场景下, 能够经过配置一主多从复制架构实现读写分离, 把大量对实时性要求不是特别高的读请求经过负载均衡分布到多个从库上, 下降主库的读取压力,在主库出现异常宕机的状况下, 能够把一个从库切换为主库继续提供服务 (中间切换过程没法提供服务)。
mysql


先用2台主机作测试sql

主库:192.168.5.149:3306vim

从库1:192.168.5.150:3307安全


1. 配置主机远程登陆,确保从库主机能够登陆到主库主机

主机配置文件bash

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 复制代码

bind-address 改 0.0.0.0  或者 注释掉 (这样mysql服务就能够监听全网的链接)服务器


systemctl restart mysql复制代码


确保要登陆的用户host为 %架构

select user, host from mysql.user; 复制代码

(这步在后面grant replication slave on *.* to 'slave'@'%' identified by 'slave'; 能够保证)
负载均衡


设置防火墙ide

开放3306端口,服务器须要配置安全组规则,有防火墙须要开放3306
sudo ufw allow 3306  或者  sudo ufw disable


2. 主库配置

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 复制代码

port修改(主库就用3306)post


开启server-id log_bin


systemctl restart mysql  复制代码
// 启用一个用户 slave,用于从库登陆到主库
grant replication slave on *.* to 'slave'@'%' identified by 'slave';复制代码

// 这里给 slave用户赋all privileges 
grant all privileges on *.* to 'slave'@'%' identified by 'slave';复制代码

flush privileges;复制代码

show master status;   // 查看master状态复制代码


主库配置好了之后就先不要改动了,改动会影响状态


3. 从库配置

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 复制代码

修改port


把server-id改为与主机不一样的,log_bin打开



systemctl restart mysql 复制代码

把slave主机的master_host切换到192.168.5.149

change master to master_host='192.168.5.149', master_port=3306, master_user='slave', master_password='slave', master_log_file='mysql-bin.000001', master_log_pos=1023;复制代码

start slave;      // stop slave; 可中止进行slave模式复制代码

show slave status\G复制代码


(看到两个Yes了不,上面的slave_io_running破玩意总是NO,翻到下面报错The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.能够参考这篇,什么,不是报这个错,本身搜过别的!!!!)



4. 测试一下主从复制

主机给个命令 (你能感觉到个人愤怒┗|`O′|┛ 嗷~~)



从机  成功啦~

相关文章
相关标签/搜索