MYSQL 主从同步配置 Windows

最近做mysql的主从服务器(master-slave)复制,折腾了半天才搞定,记录一下完整的过程;

就用局域网数据替代我的操作,比如:slaveip为从服务器ip,192.168.2.3;masterip为主服务器ip,192.168.2.2。


1、设置主服务器

    修改安装目录下的 my.ini 配置文件

log-bin=mysql-bin  # 主库日志文件前缀
server-id =1 #主服务器ID,从服务器不能相同
binlog-do-db=test # 计划同步的数据库

    添加同步用户repluser,密码passwd,授权该用户可复制权限

# 创建并分配用户"同步"的权限
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repluser'@'slaveip' IDENTIFIED BY 'passwd';

# 刷新
FLUSH PRIVILEGES;

PS: slaveip为从服务器ip,比如192.168.2.3


2、设置从服务器

        修改安装目录下的 my.ini 文件, 并加入相应的配置参数

# 服务器ID
server_id=2

# 需要同步的库
replicate-do-db=test

# 从库同步日志文件
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin

# 超时时间
master-connect-retry=60

3、主库锁表, 导出数据库, 然后再从库导入同等的数据

# 主库锁表
FLUSH TABLES WITH READ LOCK; # 锁定后数据库只读,因此最好在数据库非访问期间做此操作

# 主库导出数据(可用工具进行)
mysqldump -uroot -ppasswd dbname>dbname.sql

# 从库导入数据
mysql -uroot -ppasswd dbname< dbname.sql

# 查看并记录主库状态, 记下File和Position
show master status;

    1. 从库开始

# 在从库设置复制点

stop slave; # 先停止同步线程
CHANGE MASTER TO
MASTER_HOST='主服务器IP地址',
MASTER_USER='复制用户名',
MASTER_PASSWORD='密码',
MASTER_PORT=3306,
MASTER_LOG_FILE='主服务器二进制日志文件名',
MASTER_LOG_POS=日志位置,
MASTER_CONNECT_RETRY=10;

start slave; # 启动同步线程

show slave status G; # 检查同步状态

    2. 然后, 最后一步

# 最后一步
# 在主库恢复锁表
unlock tables;


再再然后开始验证数据, 在主库插入一条数据, 正常的情况下, 从库就会同步.

白俊遥博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论