windows下实现mysql8的主从复制

1、下载mysql8的安装包

MySQL :: Download MySQL Community Server

2、放到指定目录进行解压,更改名称为mysql-8.1.0-winx64-master,并复制一份作为从数据库

3、在bin目录下创建一个my.ini文件

添加如下内容

[mysqld]
basedir="D:/soft/mysql/mysql-8.1.0-winx64-master"
datadir="D:/soft/mysql/mysql-8.1.0-winx64-master/data"
socket="D:/soft/mysql/mysql-8.1.0-winx64-master/mysql.sock"
log-bin=mysql-bin
server-id=1
port=3306
# 设置需要同步的数据库
binlog-do-db=mydb
# 屏蔽系统库同步
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=preformance_schema

4、使用管理员打开cmd并使用如下命令初始化数据库,此时会在安装包目录下创建data目录

mysqld --initialize-insecure

5、注册服务mysql-master

mysqld install mysql-master --defaults-file="D:\soft\mysql\mysql-8.1.0-winx64-master\bin\my.ini" 

6、启动服务,可以使用如下命令或者在服务中重启

net stop mysql-master

net start mysql-master

6、设置主库root用户密码
mysqladmin -u root -password 12345678;

或者也可以在进入mysql后进行密码的修改

mysql -uroot -P3306;

use mysql;

ALTER user 'root'@'localhost' IDENTIFIED BY '12345678'

7、进行navicat配置主库连接

8、创建用于同步的账号slave,设置过期策略,修改服务器权限

9、使用如下命令查找File文件是否存在,是同步时会使用的binlog文件,记住File及Position的值

show master status;

10、配置从数据库,在拷贝的mysql-8.1.0-winx64-slave的bin路径下添加从库的my.ini文件并进行配置

[client]
port=3307
socket="D:/soft/mysql/mysql-8.1.0-winx64-slave/mysql.sock"
[mysqld]
basedir="D:/soft/mysql/mysql-8.1.0-winx64-slave"
datadir="D:/soft/mysql/mysql-8.1.0-winx64-slave/data"
socket="D:/soft/mysql/mysql-8.1.0-winx64-slave/mysql.sock"
port=3307
server-id=2
#skip-grant-tables
log-bin=mysql-bin

# 设置需要同步的数据库表
replicate_wild_do_table=mydb.%
# 屏蔽系统库同步
replicate_wild_ignore_table=mysql.%
# 启用中继日志
relay-log=mysql-relay
# 将从服务器设置为只读
read_only=1

# 要进行主从复制的数据库名
replicate-do-db=mydb
# 不进行主从复制的数据库名
replicate-ignore-db=mysql
# 记录从库更新,允许链式复制(A-B-C),当该从库作为其他库的主库时,需要添加该参数
log-slave-updates

11、以管理员权限打开cmd控制台,进行相应的操作

mysqld.exe --initialize-insecure --user=mysql

mysqld install mysql-slave --defaults-file="D:\soft\mysql\mysql-8.1.0-winx64-slave\bin\my.ini"

net start mysql-slave

12、登录从数据库,进行root用户密码修改,开启远程访问

mysql -uroot -P3307

use mysql;

ALTER user 'root'@'localhost' IDENTIFIED BY 'xtf******';

# 开启远程访问,不开启通过Navicat远程连接会报错Access denied for user

update user set host='%' where user='root';

FLUSH PRIVILEGES;

13、重启服务

net stop mysql-slave

net start mysql-slave

14、在navicat中配置同步

stop slave;
change master to master_host='127.0.0.1',master_port=3306,master_user='slave',master_password='123456',master_log_file='mysql-bin.000005',master_log_pos=569;
start slave;

show slave status;

# 如上参数

master_host  主库的ip地址

master_port   主库的端口

master_user  同步账号

master_password  同步账号的密码

master_log_file    开始同步的日志文件要与上边show master status的File一样

master_log_pos   开始同步的日志的开始位置

15、也可以在命令行中使用命令启动链路及查看链路

stop slave;

start slave;

show slave status \G;

16、验证,在主库中进行表内容的创建,从库也会进行相应操作

主库进行数据添加

从库出现相应操作

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值