mysql 本地搭建主从复制

1.找到本地集成环境中的mysql文件夹,复制一份到其他文件夹,作为从库,本地环境 mysql 8.0.12

在这里插入图片描述
在这里插入图片描述

2.修改配置文件 my.ini

我这里master和slave端口分别为 3308和3309

[mysql]
default-character-set=utf8

[mysqld]
port=3308
default_authentication_plugin=mysql_native_password
basedir=D:\mysql\master\MySQL8.0.12
datadir=D:\mysql\master\MySQL8.0.12/data/
character-set-server=utf8
default-storage-engine=InnoDB

#新增 (注意:server-id,不能重复)
server-id=1
#开启了二进制文件
log-bin=mysql-bin
#主从复制的数据库 (注意:两个参与主从复制的数据库名子相同)
binlog_do_db=text
#不参与主从复制的数据库,例如mysql
binlog_ignore_db=mysql

3.启动两个mysql

在mysql的bin目录中,在地址栏输入cmd,启动控制台,输入mysqld,启动mysql服务
在这里插入图片描述
在Navicat mysql工具中,分别连接两个数据库,注意端口在这里插入图片描述

4.配置master服务

在master数据库中,查看master状态

show master STATUS

在这里插入图片描述

5.配置slave服务

修改slave的配置,file和pos的数值参考master的状态

CHANGE MASTER TO master_host = '127.0.0.1',
 master_port = 3308,
 master_user = 'root',
 master_password = 'root',
 master_log_file = 'mysql-bin.000010',
 master_log_pos = 155;

开始slave服务

start SLAVE

查看slave状态

show slave status

如果Slave_IO_Running和Slave_SQL_Running的状态都是yes,则说明配置成功。
在这里插入图片描述

6.验证

1、在master中查询 show slave hosts,可以看到slave的信息

show slave hosts

在这里插入图片描述
2、在master中创建表students,查看slave中是否成功。

CREATE TABLE students (
	id INT (11),
	NAME VARCHAR (25),
	sex TINYINT (1),
	age TINYINT (2)
);

***出现错误和解决办法

1、Slave_IO_Running 显示为no,查询mysql的日志文件,寻找错误原因。
在这里插入图片描述
原因:master and slave have equal MySQL server UUIDs,因为我两个mysql是复制出来的,所以需要更改一下mysql的uuids。
在这里插入图片描述

select UUID()

在mysql运行,select UUID() ,获得新的uuid:536959b4-852c-11ea-bc5b-408d5c6e8e40
在mysql的data文件中,找到auto.cnf,把里面的uuid更换成新的,并重启mysql。

注:server-id和server-uuid,他们会影响二进制日志文件记录和全局事务标识
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值