mysql主从复制搭建(一主一从)

1.介绍

在这里插入图片描述

2.环境准备

准备两台服务器或者虚拟机并安装好mysql启动,或者用在同一个服务器用docker启动两个mysql服务,设置不同的端口
笔者是用两台云服务器来搭建

3.配置文件

3.1 配置-主库Master

进入主库服务器
第一步:修改/etc/my.cnf文件
vim /etc/my.cnf

[mysqld]
log-bin=mysql-bin #[必须]启用二进制日志
server-id=100 #[必须]服务器唯一ID

在这里插入图片描述

添加画线的两行
保存退出

第二步: 重启mysql服务

 systemctl restart mysqld

第三步:登录mysql,执行SQL

grant replication slave on *.* to 'xiaoming'@'%' identified by 'Root@123456';

上面SQL的作用是创建一个用户xiaoming,密码为Root@123456,并且给xiaoming用户授予replication slave权限,常用于建立复制时所需要用到的用户权限,也就是说slave必须被master授权具有该权限的用户,才能通过该用户复制

第四步:登录mysql,执行下面SQL,记录结果中File和Position的值

show master status;

在这里插入图片描述
注意:上面的SQL作用是查看master的状态,执行完此SQL后不要再执行任何操作。可以新开一个窗口去从库所在服务器

3.2 配置-从库Slave

进入从库服务器
第一步:修改/etc/my.cnf文件
vim /etc/my.cnf

[mysqld]
server-id=101 #[必须]服务器唯一ID

在这里插入图片描述
第二步: 重启mysql服务

 systemctl restart mysqld

第三步:登录mysql数据库,执行下面sql

change master to 
master_host='主库ip',master_user='xiaoming',
master_port=3306,master_password='Root@123456',
master_log_file='mysql-bin.000001',master_log_pos=441;

主库ip写你的主库ip
master_log_file='mysql-bin.000001',master_log_pos=441;
这两个的值来源上面配置主库第四步

如果上SQL执行报错,就执行stop slave,再执行上面SQL

第四步:执行start slave
在这里插入图片描述

然后执行show slave status/G;
在这里插入图片描述
到此主从复制配置完成

可以连接主库的数据库,然后建立数据库,刷新从库就会发现从库也有了该数据库,建表和插入数据也可以同样在从库显示


版权声明:本文为m0_37959155原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。