mysql windows下搭建mysql主从+注意事项

一. mysql主从搭建


  1. 准备2台服务器. ip分别是192.168.0.100 和 192.168.0.101
  2. 下载5.6以上版本mysql安装包,mysql正确安装.
  3. 配置master
    3.1 找到正确的my.ini (查找方法见注意事项)
log-bin=mysql-bin  #slave会基于此log-bin来做replication
server-id=1 #master的标示
binlog-do-db = mjdbtest #用于master-slave的具体数据库名字

增加以上代码(不包括注释)后,重启mysql服务
3.2 为slave添加专门的帐号,同步master数据. 执行

mysql> GRANT REPLICATION SLAVE ON *.* TO slaveMac@192.168.0.101 IDENTIFIED BY 'admin';
    FLUSH PRIVILEGES;

重启mysql服务.

3.3 show master status\G查看master的状态
这里写图片描述

如果能够看到File, Position, Binlog_Do_DB说明master配置成功,一会配置slave时,需要用到.

4.配置slave
4.1 同样方式找到正确的my.ini文件, 修改唯一标识. 无论是master还是slave,每个mysql的server-id唯一,通常局域网中,用ip尾号来标识

server-id=2 #slave的标示

再重启,使配置生效
4.2 执行命令

CHANGE MASTER TO MASTER_HOST='192.168.0.100',MASTER_USER='slaveMac',MASTER_PASSWORD='admin',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=429;

其中MASTER_HOST是master机的ip,MASTER_USER和MASTER_PASSWORD就是我们刚才在master上添加的用户,MASTER_LOG_FILE和MASTER_LOG_POS对应与master status里的信息.

最后启动slave ,命令: start slave.
在操作过程中, 遇到过异常

this operation connot be performed with a running slave;run STOP SLAVE first

, 其实就是要先停止slave, 然后在执行change命令,再启动.

1.stop slave;
2.reset slave;
3.执行change master 命令
4.start slave;

4.3 查看slave是否配置成功,从mysql日志中,看下是否有输出以下信息,如果有输出,说明配置成功. 自定义mysql输出日志的方式,见注意事项

100703 10:51:42 [Note] Slave I/O thread: connected to master 'repl@10.20.147.110:3306',  replication started in log 'mysql-bin.000003' at position 161261

二. 注意事项

  1. 先停止对master主库的操作.
  2. 将要做主从db从master导出到slave中,网络上很多文章都没有说明要先导出到slave. 刚开始跟着教程操作,最后在slave上就是没有数据, 疑惑了很久.
  3. 版本要5.6以上. 5.6版本增加了binlog_checksum属性, 刚开始在master上安装的是v5.5, slave上装的是v5.6. 于是抛出异常. 好像是由于slaved上的会将自己的binlog_checksum和master上的binlog_checksum做比较,验证数据的正确性. 但是master v.5.5上没有这个属性.
  4. 安装完mysql后,安装目录下会看到mydefault.ini, 刚开始根据网络教程去修改ini下的配置, 但是重启后根本不生效. 因为修改错了ini. 正确的ini位置通过: 运行services.msc->找到mysql服务->右键属性->找到加载ini的路径.
  5. 配置自定义日志, 因为安装后的默认日志不方便查找.所以我们自定义目录.在my.ini中,修改如下代码

general-log=1 #开启正常日志,通常不会开启,因为这个txt会很大
#general_log_file=”iZ237dppvtcZ.log”
general_log_file = D:/mysql56/log/mysql_log.txt #正常日志的目录

slow-query-log=1 #开启慢查询的日志
#slow_query_log_file=”iZ237dppvtcZ-slow.log”
slow_query_log_file= D:/mysql56/log/mysql_log_slow.txt
long_query_time=10 #超过10秒为慢查询,个人感觉10秒太长了.

# Error Logging.
#log-error=”iZ237dppvtcZ.err”
log-error=D:/mysql56/log/mysql_log_err.txt #错误日志目录
“`

三. 测试
1. 现在master和slave上都有mjdbtest数据库了. 在master上修改一条数据的记录. 看看slave的中是不是也变化了. 如果没有成功, 可以跟踪下master和slave的自定义mysql日志文件.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值