Mysql主从配置
背景:单点故障的情况下,想要数据库达到高可用,可以配置个主从mysql。在主节点挂掉的情况可以用keepalive+lvs技术,ip漂移到从节点,无感的使用从节点数据
需求:用docker快速的搭建一个mysql主从,实现主从的数据同步。keepalive+lvs后边编写
效果:主节点对数据库,表,字段,数据的操作都会同步到从节点
部署节点
#创建目录
mkdir -p /home/data/master/mysql/
mkdir -p /home/data/slave/mysql/
#创建配置文件
touch /home/data/master/mysql/my.cnf
touch /home/data/slave/mysql/my.cnf
#部署主节点
docker run \
-p 3307:3306 \
-e MYSQL_ROOT_PASSWORD=abc123 \
-v /home/data/master/mysql/conf:/etc/mysql/conf.d \
-v /home/data/master/mysql/data:/var/lib/mysql:rw \
-v /home/data/master/mysql/my.cnf:/etc/mysql/my.cnf \
--name xc_mysql_master \
--restart=always \
-d mysql:8.0
#部署从节点
docker run \
-p 3308:3306 \
-e MYSQL_ROOT_PASSWORD=abc123 \
-v /home/data/slave/mysql/conf:/etc/mysql/conf.d \
-v /home/data/slave/mysql/data:/var/lib/mysql:rw \
-v /home/data/slave/mysql/my.cnf:/etc/mysql/my.cnf \
--name xc_mysql_slave \
--restart=always \
-d mysql:8.0
主节点配置
vim /home/data/master/mysql/my.cnf
[mysqld]
# 开启 binlog, 可以不加,默认开启
log-bin=mysql-bin
# 选择 ROW 模式
binlog_format=row
#server_id不要和slaveId重复
server-id=1
从节点配置
vim /home/data/slave/mysql/my.cnf
[mysqld]
# 开启 binlog, 可以不加,默认开启
log-bin=mysql-bin
# 选择 ROW 模式
binlog_format=row
#server_id不要和slaveId重复
server-id=2
重启服务
docker restart xc_mysql_master
docker restart xc_mysql_slave
数据库授权
从节点需要配置账号密码,进行授权
-- 创建slave用户
CREATE USER 'xc_slave'@'%';
-- 设置密码
ALTER USER 'xc_slave'@'%' IDENTIFIED WITH mysql_native_password BY '123456789';
-- 授予复制权限
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'xc_slave'@'%';
-- 刷新权限
FLUSH PRIVILEGES;
确认binlog日志的文件名和位置,则可以运行命令
SHOW MASTER STATUS;
从数据库配置读取主节点数
change master to master_host='120.24.7.58', master_user='xc_slave', master_password='123456789', master_port=3307, master_log_file='mysql-bin.000001', master_log_pos=1095, master_connect_retry=30;
设置从数据库开启主从服务
start slave;
评论区