mysql数据库主从复制实现,和问题解决

自己测试搭建mysql数据库的主从复制,并记录下自己遇到的所有坑点。

什么是主从数据库

主从数据库详解

环境

系统:window10
mysql:5.7
主服务器:192.168.99.86
从服务器:192.168.99.181
测试主从复制的数据库名 vim

一,主数据库配置

在主服务器进行如下操作,使用mysql控制台。

  1. 停止mysql,在mysql安装目录下修改my.ini文件,添加如下配置
#=========主从复制关键配置=====================
#主库和从库需要不一致,配一个唯一的ID编号,1至32。 手动设定
server_id=1 
#二进制文件存放路径,存放在根目录data
log-bin=mysql-bin 
#需要复制的库,多个库用逗号隔开,如果此项不配置所有主库都参与复制
binlog-do-db=vim 
#不需要复制的库,和上项同理
#binlog-ignore-db=mysql 
#=========主从复制关键配置=====================
  1. 打开mysql控制台窗口执行:
    windows打开mysql控制台方法链接
  CREATE USER 'slave'@'192.168.99.%' IDENTIFIED BY '123456';
  GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.99.%';
  FLUSH PRIVILEGES;

slave:给从服务器分配的登录账号
123456:给从服务器分配的登录密码
192.168.99.% :从服务器可以从哪里登录,从服务器ip限制

  1. 查看状态
show master status;
  1. 控制台窗口如下

二进制文件为mysql-bin.000007,位置为604 数据库 vim

二,从数据库配置

在从服务器进行如下操作,使用mysql控制台。

  1. 停止mysql,在mysql安装目录下修改my.ini文件,添加如下配置
#=========主从复制关键配置=====================
#主库和从库需要不一致,配一个唯一的ID编号,1至32。 手动设定
server_id=2
#二进制文件存放路径,存放在根目录data
log-bin=mysql-bin 
#需要复制的库,多个库用逗号隔开,如果此项不配置所有主库都参与复制
binlog-do-db=vim 
#不需要复制的库,和上项同理
#binlog-ignore-db=mysql 
#=========主从复制关键配置=====================
  1. 打开mysql控制台:关闭主从复制服务
slave stop;
  1. 执行同步语句
change master to master_host='192.168.99.86', master_user='slave', master_password='123456', master_log_file='mysql-bin.000007', master_log_pos=604;
  1. 启动主从复制功能
start slave;   
  1. 检查从服务器复制功能状态
 show slave status\G

主要下面两个属性需要为yes才是开启成功。
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
6. 之前控制台操作总结

测试

在主数据库的测试表添加数据,看从数据库是否更改。通常就成功了。

下面是问题总结:
我不小心在从数据库添加了一条数据导致主键约束而无法添加数据。所以在使用从表的时候。一定不要去添加,修改从表数据。不然主从复制就会停止了。

问题复盘:
我在主数据库手动添加一条数据,我看到从数据库没有更新。
先检查从服务器复制功能状态:在从服务器mysql控制台输入

 show slave status\G

在这里插入图片描述
发现报错为主键冲突:Duplicate entry ‘1’ for key ‘PRIMARY’ on query
删除从表不小心输入的数据。
然后重启主从复制服务。运行:

start slave; 

发现问题解决了。主从就配置好了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值