windows下实现mysql8的主从复制

1、下载mysql8的安装包

MySQL :: Download MySQL Community Server

windows下实现mysql8的主从复制_第1张图片

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

windows下实现mysql8的主从复制_第2张图片

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

windows下实现mysql8的主从复制_第3张图片

添加如下内容

[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

windows下实现mysql8的主从复制_第4张图片

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

windows下实现mysql8的主从复制_第5张图片

windows下实现mysql8的主从复制_第6张图片

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

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

mysql -uroot -P3306;

use mysql;

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

7、进行navicat配置主库连接

windows下实现mysql8的主从复制_第7张图片

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

windows下实现mysql8的主从复制_第8张图片

windows下实现mysql8的主从复制_第9张图片

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

show master status;

windows下实现mysql8的主从复制_第10张图片

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

windows下实现mysql8的主从复制_第11张图片

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

windows下实现mysql8的主从复制_第12张图片

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

windows下实现mysql8的主从复制_第13张图片

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   开始同步的日志的开始位置

windows下实现mysql8的主从复制_第14张图片

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

stop slave;

start slave;

show slave status \G;

windows下实现mysql8的主从复制_第15张图片

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

主库进行数据添加

windows下实现mysql8的主从复制_第16张图片

从库出现相应操作

windows下实现mysql8的主从复制_第17张图片

你可能感兴趣的:(windows)