Windows 下配置MySQL数据库的主从同步笔记

Windows 下配置MySQL数据库的主从同步

主服务器和从服务器安装和配置

自己搞喽,网上很多教程,集成环境可以,搞个虚拟机win系统装mysql也可以,搞两个linux系统的mysql也可以,这里不再赘述

主服务器配置

主要工具软件 记事本 和 navacat for mysql

找到主服务器 myini 按照对比设置以下配置
server_id=1
# row 格式 不要使用mixed
binlog_format=ROW
# binlog_format=mixed
#最小化日志记录
binlog_row_image=minimal
# 二进制日志文件名 设置为 binlog
log-bin=binlog
# 从库开启binlog日志记录
log-slave-updates=1

#指定需要复制的数据库名为test,如果备份多个数据库,重复设置这个选项即可
binlog-do-db=test

#不需要备份的数据库名,如备份多个数据库,重复这个选项
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=information_schema
binlog-ignore-db=sys

查看主服务器的状态

show master status;

重点是 二进制日志当前记录的文件名 binlog.000041 和点位 154
主服务器状态关注点

  • 注意要使用 root 账户,否则会提示无权限

如果需要委派其他用户名需要赋权,举例:
grant all on test.* to 'test'@'%' identified by 'test123' with grant option;
权限生效
FLUSH PRIVILEGES;

重启主服务器mysql

找到 计算机管理->‘服务’,重新启动

主服务器设置读锁
Flush tables with read lock;

经常查看 主服务器状态二进制日志点位,要保持不变 show master status;如果有变需要 重复 锁表和 导出的步骤

将数据库导出为

test.sql

复制传输到从服务器

复制粘贴
下载等各种方式都可以

从服务器配置

找到从服务器 myini 按照对比设置以下配置

# 从服务器 ID
server_id=2
# 二进制日志格式和主服务器保持一致
binlog_format=row
# 开启二进制日志
log-bin=binlog
# 二进制日志最小化记录
binlog_row_image = minimal
# 设置不需要同步的数据库
replicate_wild_ignore_table=mysql.%
replicate_wild_ignore_table=performance_schema.%
replicate_wild_ignore_table=information_schema.%

test.sql导入从服务器数据库

可以用 navcat等工具软件来导入导出,命令行也可以,根据自己能力搞吧,这里也不多讲

设置 链接 到主服务器
# 设置主服务器链接ip用户名密码和binlog日志的文件名和当前日志点位
CHANGE MASTER TO MASTER_HOST='192.168.4.68',MASTER_PORT=3306, MASTER_USER='test', MASTER_PASSWORD='test123', MASTER_LOG_FILE='binlog.000041',MASTER_LOG_POS=154;

启动从服务器

# 启动从服务器
start slave;
# 查看从服务器状态
show slave status;

从服务器配置成功

成功配置

配置完成后解锁主服务器的表锁

unlock tables;

遇到的问题

    1. Slave_IO_Running: No 表示主服务器未成功读取
    1. Slave_SQL_Running: No 表示slave不同步
    1. Slave_IO_Running: Connecting IP 用户名或密码错误

1,2 原因: 两个数据库的 uuid竟然是同一个,大意了
解决方案:找到 data文件夹下 auto.cnf 改掉其中一个 uuid ,一般更改从服务器 uuid 即可,改完后重启,重新查看状态
3, 查看 ip 用户名 和密码 是否敲错了,改正后 重启

-- stop slave;
-- start slave;
show slave status;


权限问题

使用的用户名要求有 跨域IP访问权限,@后加%或指定ip,例如我用的用户名是test

grant all on test.* to 'test'@'%' identified by 'test123' with grant option; ```
# 权限生效
FLUSH PRIVILEGES;

个人笔记,仅供参考,每个人遇到的情况不同,可以留言一起分析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值