Mysql主从复制

Mysql主从复制

1.架构思路
Mysql主从复制_第1张图片
2.同步原理二进制文件中,同时根据配置主从的信息,将binlog同步到从数据库中,生成relay-log,从数据库根据relay-log同步自己的数据库中的数据。
主数据库将写操作日志记录下来,记录在binlog
3. 主数据库配置

  1. 去掉log-bin=mysql-bin的注释,开启MySQL的二进制日志记录机制
    log-bin=mysql-bin
  2. 增加要同步的database 可以并列配置多个。
    binlog-do-db=baizhi
  3. 添加忽略的数据库database
    binlog-ignore-db=mysql
  4. 修改主库的server-id为当前服务器的ip末位
    server-id=130
    Mysql主从复制_第2张图片
  5. 重启mysqld服务
    service mysqld restart
  6. 在主库中查看主服务的binlog状态 进入mysql命令环境执行
    show master status
    Mysql主从复制_第3张图片
  1. 从数据库配置
  1. 修改从库的server-id[当前集群环境下不能重复,建议设为当前服务器的ip末位]
    server-id=131
  2. 中继日志的索引文件
    relay-log-index=slave-relay-bin.index
  3. 中继日志的文件前缀
    relay-log=slave-relay-bin
    Mysql主从复制_第4张图片
  4. 重启mysqld服务
    service mysqld restart
  5. 关闭从数据库服务。【进入mysql命令环境执行】
    stop slave
  6. 关联主从配置【进入mysql命令环境执行】
    mysql>change master to master_host=‘192.168.137.130’,master_user=‘root’,master_password=‘admins’,master_log_file=‘mysql-bin.000002’,master_log_pos=107;

Mysql主从复制_第5张图片
7) 启动从服务
start slave;
8) 查看从服务状态[末位不加分号]
show slave status \G
–G是纵向查看结果。
Mysql主从复制_第6张图片
5. 验证主从配置效果

  1. 在主库中创建一个表添加一个数据

Mysql主从复制_第7张图片
2) 在在从库中查看该表,并查询该条数据
Mysql主从复制_第8张图片
6. 错误排查

  1. 从库数据乱码
    Mysql主从复制_第9张图片
    a) 情况说明
    Mysql主从复制_第10张图片
    b) 原因查看
    Mysql主从复制_第11张图片
    c) 解决办法
    删除从库的同步的database,然后重新创建,并指定编码格式
    在这里插入图片描述

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