MySQL配置一主多从
首先准备三台虚拟机、关闭防火墙、selinux
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#关闭selinux
setenforce 0
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
主节点
192.168.221.120
两台从节点
192.168.221.121、192.168.221.122
修改三台虚拟机的MySQL配置文件my.cnf
确保每台机器的server-id唯一,不能重复、修改后必须重启MySQL服务!!!
接下来执行sql、主节点执行
-- 创建共享用户repl
CREATE USER 'repl'@'%' IDENTIFIED BY 'JiaLve123!';
grant replication slave on *.* to 'repl'@'%';
-- 获取主节点File和Position的值、从节点需要用到!
show master status;
两台从节点执行
-- MASTER_HOST为主节点ip地址、MASTER_USER为主节点创建的共享用户、MASTER_PASSWORD为共享用户密码、MASTER_PORT为主节点端口、MASTER_LOG_FILE为主节点的FILE值、MASTER_LOG_POS为主节点的Position
CHANGE MASTER TO MASTER_HOST='192.168.221.120',MASTER_USER='repl',MASTER_PASSWORD='JiaLve123!',MASTER_PORT=3303,MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=694,get_master_public_key=1;
-- 开启slave
start slave;
-- 查看状态 Slave_IO_Running、Slave_SQL_Running都为yes则代表配置成功
show slave status \G
接下来测试
主节点执行
create database test;
use test;
create table user(id int primary key ,name varchar(12),tel varchar(12));
insert into user values (1,'张三','110'),(2,'李四','120'),(3,'王五','119');
select * from user;
从节点执行
use test;
select * from user;
-- 能够查到结果则配置完成