Windows环境MySql主从同步、读写分离的搭建(Linux类似)

文章详细介绍了如何在Windows11和Windows10上配置MySQL8.2的主从同步,包括修改my.ini配置文件,设置主从服务器ID,创建同步用户并分配权限,以及启动和检查同步状态。测试显示主库数据能成功同步到从库,但从库无法进行数据写入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
一:环境

  windows11、window10、mysql8.2

 主服务器 ip:192.168.50.97

 从服务器 ip:172.28.4.244

   同步测试用的数据库scheme:carry-middleware

 二:配置

 1:主数据库配置

my.ini

重要的配置

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
 

[mysqld]
port=3306

# mysql安装目录
 basedir="E:/midthing/mysql8.0-windows/mysql"
# mysql数据库的数据的存放目录(这里是默认的)
datadir=C:/ProgramData/MySQL/MySQL Server 8.2/Data
#开启bin-log,并指定文件目录和文件名前缀
log-bin=E:/midthing/mysql8.0-windows/mysqlbinlog/log-bin.log

# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 服务端默认上限是64M
max_allowed_packet=64M
# 在sql_mode中加入兼容模式以提高兼容性
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

# 唯一id
server-id=1

#需要同步的数据库。 多个用逗号分开
binlog-do-db=carry-middleware
#不同步mysql系统数据库。多个用逗号分开  
binlog-ignore-db=mysql


[client]
default-character-set=utf8mb4
port=3306

 2:从数据库配置

my.ini

重要的配置,和主服务器差不多


[mysql]
default-character-set=utf8

[mysqld]
port=3306
basedir=C:/mysql
datadir=C:/ProgramData/MySQL/MySQL Server 8.2/Data
log-bin=C:/mysql8.0/binlog/log-bin.log
max_connections=200
character-set-server=utf8
max_allowed_packet=64M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
 

#设置从服务器id,必须于主服务器不同
server-id=2


replicate-do-db=carry-middleware
replicate-ignore-db=mysql
#跳过所有的错误错误,继续执行复制操作
slave-skip-errors=all
// 中继日志
relay-log=C:/mysql8.0/relaylog
// 从库只读
read_only=1
super_read_only=1
innodb_read_only=1
 

[client]
default-character-set=utf8mb4
port=3306

3:重启mysql

主从全部重启服务,,然后去检查下设置的binlog文件夹下是否产生对应的日志文件

三:创建用户和设置同步权限

 1:主数据库

  创建用户,设置权限

   create user 'slave'@'%' identified by 'Wo982694307'; 
   grant replication slave,replication client on *.* to 'slave'@'%';
   flush privileges;

2:从数据库

  创建用户,设置外部连接权限,要不然navcat连接不上

   

     CREATE USER 'slave'@'%' IDENTIFIED BY 'Wo982694307';  
     FLUSH PRIVILEGES;
     grant all on *.* to 'slave'@'%';
     alter user "slave"@"%" identified with mysql_native_password by 'Wo982694307'; 

四:配置主从同步指令

stop slave; 
change master to master_host='172.28.4.136',master_user='slave',master_password='Wo982694307';    
start slave;

查看从数据库状态:show slave status \G;

五:测试

主库插入一条数据

从库同步了一条数据

从数据库无法新增数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值