参考视频教程: https://www.bilibili.com/video/BV13a411q753?p=172
参考博客: https://blog.csdn.net/main_Scanner01/article/details/124259050
1. 介绍
1.1 要点
主库(master): 负责增删改
从库(slave) : 负责查询
主从库关系: 一对多
1.2 步骤
● master将改变记录到_进制日志(binary log )
● slave将master的binary log拷贝到它的中继日志(relay log )
● slave重 做中继日志中的事件,将改变应用到自己的数据库中
1.3 前提条件
提前准备好两台服务器(至少两台),分别安装Mysql并启动服务成功
● 主库Master 192.168.150.128
● 从库Slave 192.168.150.130
如果没有安装MySQL可以访问以下链接:
Linux安装MySQL: https://blog.csdn.net/qq_45056135/article/details/128171450
Win安装MySQL : https://blog.csdn.net/qq_45056135/article/details/127201960
1.4 常用命令
查看mysql服务状态
systemctl status mysqld
启动mysql服务
systemctl start mysqld
重启mysql服务
systemctl restart mysqld
2. 主机配置
2.1 修改配置文件/etc/my.cnf
修改配置文件/etc/my.cnf
vim /etc/my.cnf
在[mysqld]后添加内容(:wq!保存后退出)
log-bin=mysql-bin
server-id=128
说明: 128是主机的ip为也可以设置为其他的, 唯一即可(主机和从机id不能一样)
添加后如下所示:

2.2 重启MySQL服务
修改配置文件后重启MySQL服务
systemctl restart mysqld
2.3 赋予从机权限
- 进入MySQL数据库
mysql -uroot -proot
- 执行下面SQL赋予从机权限
GRANT REPLICATION SLAVE ON *.* to 'xiaoming'@'%' identified by 'Root@123456';

注:上面SQL的作用是创建一一个用户xiaoming, 密码为Root@123456, 并且给xiaoming用户授予REPLICATION SLAVE权限。常用于建立复制时所需要用到的用户权限,也就是slave必须被master授权具有该权限的用户,才能通过该用户复制。
2.4 记录文件名和指针位置
同样要先登录登录Mysql数据库
mysql -uroot -proot
执行下面SQL,记录下结果中File和Position的值
show master status;
如下所示: mysql-bin.000006 和 441

3. 从机配置
登录从机
3.1 修改配置文件/etc/my.cnf

修改配置文件:
vim /etc/my.cnf
在[mysqld]后添加内容(:wq!保存后退出)
server-id=130
说明: 130是从机的ip为也可以设置为其他的, 唯一即可(别和主机的id一样)
添加后内容如下所示

3.2 重启MySQL服务
systemctl restart mysqld
3.3 配置文件连接
- 同样要先登录登录Mysql数据库
mysql -uroot -proot
- 执行下面SQL 用于连接主机
文件连接
change master to
master_host='192.168.150.128',
master_user='xiaoming',
master_password='Root@123456',
master_log_file= 'mysql-bin.000006',master_log_pos=441;
上面SQL语句各个参数说明
CHANGE MASTER TO
MASTER_HOST='主机的IP地址',
MASTER_USER='主机用户名',
MASTER_PASSWORD='主机用户名的密码',
MASTER_LOG_FILE='mysql-bin.具体数字',
MASTER_LOG_POS=具体值;
情况1: 执行之后出现如下错误:(说明之前已经开了Slave 我们关闭即可)

关闭Slave:
stop slave;
重新执行一遍:
change master to
master_host='192.168.150.128',
master_user='xiaoming',
master_password='Root@123456',
master_log_file= 'mysql-bin.000006',master_log_pos=441;
然后在开启Slave
start slave;
情况2: 执行成功
如下表示执行成功:

开启Slave
start slave;
3.4 检查是否成功配置
方法1:
查看从数据库的状态
show slave status;
如下所示两个Yes表示配置成功

方法2:
执行命令
show slave status\G
如下所示两个Yes表示配置成功

其他问题
Slave_IO_Running: NO
Slave_SQL_Running: Yes的情况我之前碰到这种情况是因为3.3配置错了, 这种情况一般是你没有配置对文件, 多看看空格, -等特殊字符。


![如何创建多语言WordPress网站[专家建议]](https://img-blog.csdnimg.cn/img_convert/d6fbb4a22d6a482703c5f7f4539cbba6.png)









![[附源码]JAVA毕业设计企业信息安全评价系统(系统+LW)](https://img-blog.csdnimg.cn/145d7aeec96448a38fcfeb161e7abca5.png)
![[附源码]Python计算机毕业设计Django小区疫情事件处理系统](https://img-blog.csdnimg.cn/c90085f701e84b98b8df0e292a3f182c.png)



![[附源码]计算机毕业设计绿色生鲜Springboot程序](https://img-blog.csdnimg.cn/b890396b330c4401a2c57069cd4961c8.png)

