一台Windows10下搭建Mysql主从同步详细步骤--亲测可用

Mysql主从同步、主从复制配置详细步骤

    • 1.下载Mysql
      • 1.1 官网下载
      • 1.2 解压zip 到指定目录
        • 1.2.1 在mysql-master-3309下
        • 1.2.2 在mysql-slave-3310
    • 2.安装命令行详细步骤
      • 2.1.主库Master
        • 2.1.1 初始化:
        • 2.1.2 注册服务
        • 2.1.3 启动服务
        • 2.1.4 连接mysql
        • 2.1.5 修改密码
        • 2.1.6 创建用于同步的用户账号
        • 2.1.7 查看主库状态
    • 3.从库Slave
    • 4.准备开启主从同步
      • 4.1 查看master和slave各自目录 xxx/data/auto.cnf
      • 4.2设置从库从哪里同步即设置master
      • 4.3 开始主从同步
      • 4.4 检查同步状态
    • 5.操作详细步骤截图
      • 5.1 master
      • 5.2 slave

1.下载Mysql

1.1 官网下载

地址: https://www.mysql.com/downloads/
一台Windows10下搭建Mysql主从同步详细步骤--亲测可用_第1张图片
一台Windows10下搭建Mysql主从同步详细步骤--亲测可用_第2张图片

一台Windows10下搭建Mysql主从同步详细步骤--亲测可用_第3张图片

1.2 解压zip 到指定目录

我解压了两份:

D:\DeveloperTools\mysql5.7.32\mysql-master-3309
D:\DeveloperTools\mysql5.7.32\mysql-slave-3310

1.2.1 在mysql-master-3309下

新增文件夹data和my.ini文件
一台Windows10下搭建Mysql主从同步详细步骤--亲测可用_第4张图片

my.ini文件内容如下

[client]
# 设置mysql客户端默认字符集
default-character-set=utf8
 
[mysqld]
server_id=3
log-bin=master-bin
binlog-format=ROW
#表示不需要备份的数据库为mysql
binlog-ignore-db=mysql

#设置免密码登录
#skip-grant-tables
# 设置3306端口
port = 3309
# 设置mysql的安装目录
basedir=D:\\DeveloperTools\\mysql5.7.32\\mysql-master-3309
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
datadir=D:\\DeveloperTools\\mysql5.7.32\\mysql-master-3309\\data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

1.2.2 在mysql-slave-3310

新增文件夹data和my.ini文件

my.ini文件内容如下

[client]
# 设置mysql客户端默认字符集
default-character-set=utf8
 
[mysqld]
server_id=4
log-bin=slave-bin
binlog-format=ROW

#设置免密码登录
#skip-grant-tables
# 设置3306端口
port = 3310
# 设置mysql的安装目录
basedir=D:\\DeveloperTools\\mysql5.7.32\\mysql-slave-3310
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
datadir=D:\\DeveloperTools\\mysql5.7.32\\mysql-slave-3310\\data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

完成以上内容之后:

2.安装命令行详细步骤

管理员身份打开命令行cmd 否则可能因为权限不足报错

具体步骤如下:

2.1.主库Master

管理员权限打开控制台cmd,在mysql解压目录bin下执行以下命令:

2.1.1 初始化:

mysqld --initialize --console

控制台输出初始化root密码

2.1.2 注册服务

mysqld --install MysqlMaster --defaults-file="D:\DeveloperTools\mysql5.7.32\mysql-master-3309\my.ini"

2.1.3 启动服务

启动和停止服务可以使用如下命令行,也可以通过windows服务管理页面启动和关闭

net start MysqlMaster

停止服务

net stop MysqlMaster

2.1.4 连接mysql

密码在初始化的时候控制台会输出

mysql -uroot -P3309 -pxxxx

2.1.5 修改密码

alter user 'root'@'localhost' identified by '123456';

或者

update mysql.user set authentication_string=password("123456") where user="root";

有时候使用第二种方式会提示不能操作,建议使用第一种

刷新权限:

flush privileges;

2.1.6 创建用于同步的用户账号

也可以不创建,使用root,但是网上其他帖子说建议单独创建账号,我这里也没有多深究,就单独创建吧

create user 'lanchao'@'%' identified by '123456';
grant replication slave on *.* to 'lanchao'@'%' identified by '123456';
flush privileges;

2.1.7 查看主库状态

show master status;

3.从库Slave

像操作主库一样进行初始化,安装,启动等操作
管理员权限打开控制台cmd,在mysql解压目录bin下执行以下命令:

3.1 初始化:
mysqld --initialize --console
3.2 注册服务
mysqld --install MysqlSlave --defaults-file="D:\DeveloperTools\mysql5.7.32\mysql-slave-3310\my.ini"
3.3 启动服务
net start MysqlSlave
3.4 连接mysql 
mysql -uroot -P3310 -pxxx
3.5 修改密码: 
alter user 'root'@'localhost' identified by '123456';
flush privileges;
3.6 创建用于同步的用户账号:
create user 'lanchao'@'%' identified by '123456';
flush privileges;
3.7 查看从库状态
show slavestatus;

4.准备开启主从同步

4.1 查看master和slave各自目录 xxx/data/auto.cnf

如果两个文件一致,则修改slave从库的auto.cnf 使得两个库的值不一致

[auto]
server-uuid=049b7b4c-36c5-11eb-bbbf-e454e8d43410

4.2设置从库从哪里同步即设置master

change master to master_host='localhost',master_port=3309,master_user='lanchao',master_password='123456',master_log_file='master-bin.000002',master_log_pos=1236;

参数详解:

master_host: 主服务器的IP
master_user: 主服务器上新创建的用户名
master_password: 用户的密码
master_port: 主服务器的端口,如果未曾修改,默认即可。
master_log_file:主服务器二进制日志文件的名称,填写查看主服务器的master状态时显示的File值
master_log_pos:同步位置

4.3 开始主从同步

start slave;
stop slave;

4.4 检查同步状态

show slave status\G

5.操作详细步骤截图

5.1 master

一台Windows10下搭建Mysql主从同步详细步骤--亲测可用_第5张图片

5.2 slave

一台Windows10下搭建Mysql主从同步详细步骤--亲测可用_第6张图片
一台Windows10下搭建Mysql主从同步详细步骤--亲测可用_第7张图片

注意,主从同步成功的标志:
IO线程和SQL线程都是成功运行的:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

以上完成即表示OK
现在可以使用进行测试,master的操作都会同步到从库


如果您觉得帮到了您,是否可打赏一杯奶茶,谢谢
一台Windows10下搭建Mysql主从同步详细步骤--亲测可用_第8张图片

你可能感兴趣的:(数据库,mysql,mysql)