centos7 mysql主从半同步配置

[TOC]

文档借鉴地址:

https://www.cnblogs.com/Mr-zhou/p/11470303.html

前提:

​ mysql已安装完毕

1 主库配置

  1. 编辑mysql配置文件,路径一般为/etc/mysql/mysql.conf.d/mysqld.cnf(用户在安装Mysql时指定的目录,如:/etc/my.conf等)。分别按要求在主、从mysql中的[mysqld]模块下添加如下内容:

vim /etc/my.cnf

[mysqld]
# 开启binlog
log_bin=mysql-bin
# 可选:每次操作与磁盘同步
sync-binlog=1 
server-id=1
binlog-ignore-db=sys,information_schema,performance_schema
# 需要同步的数据库名称,不配置则同步所有
# binlog_do_db=
  1. 重启mysql ,以使配置生效

systemctl restart mysql.service

  1. 授权主从同步

    grant replication slave on *.* to 'root'@'%' identified by 'root';
    grant all privileges on *.* to 'root'@'%' identified by 'root';
    flush privileges;
    
  2. 查看主库状态

    show master status;

    mysql> show master status \G;
    *************************** 1. row ***************************
                 File: mysql-bin.000005
             Position: 869
         Binlog_Do_DB: 
     Binlog_Ignore_DB: sys,information_schema,performance_schema
    Executed_Gtid_Set: 
    1 row in set (0.00 sec)
    

2 从库配置

  1. 配置文件 /etc/my.cnf
server-id=2
relay_log=mysql-relay-bin
read_only=1
binlog-ignore-db=sys,information_schema,performance_schema
  1. 重启生效配置

    systemctl restart mysqld;
    
  2. 查看从库状态

    show slave status;
    
  3. 主从初始化配置

    change master to master_host='172.16.14.201',master_port=3306,
    master_user='slave',master_password='slave',
    master_log_file='mysql-bin.000001',master_log_pos=869;
    

    master_log_file:主库binlog的文件名

    master_log_pos :主库日志同步位置

  1. 启动从库slave服务

    查看从库slave状态:

    show master status;

    start slave;
    

    停止slave服务命令:stop slave;

主从错误处理

MHA集群报错:The slave I/O thread stops because master and slave have equal MySQL server UUIDs

https://blog.csdn.net/sunbocong/article/details/81634296

错误原因:主机克隆时,mysql 服务的uuid (auto.cnf)重复了

解决方案:删除auto.cnf ,重启mysqld 服务即可。

文件位置查询命令:find / |grep auto.cnf

主从同步前的数据同步

主库数据导出

[root@localhost ~]# mysqldump --all-databases > mysql_backup_all.sql -uroot -proot

主库数据导入从库

半同步复制插件安装

  1. 查看是否支持动态安装插件

    mysql> select @@have_dynamic_loading;

  2. 查看已安装的插件

    mysql> show plugins;

  3. 安装semi插件

    mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so';

  4. 查看semi配置信息

    mysql> show variables like '%semi%';

  5. semi配置信息修改

    修改方案:有 set 命令修改;或者修改semi的配置文件。

    ** 开启配置

    mysql> set global rpl_semi_sync_master_enabled=1;
    ** 配置延时1秒

    mysql> set global rpl_semi_sync_master_timeout=1000;

对于从库,从新配置插件后,需要重启slave;

  1. stop slave;
    如果要清楚从库的配置,使用如下命令:
    reset slave all;
  2. start slave;

你可能感兴趣的:(centos7 mysql主从半同步配置)