q986 发表于 2018-12-31 07:20:41

在Centos7玩转Mysql半同步和keepalived+MHA(一)

  网上这类教程还是有很多的,但是多半不能拿过来自己配置,比如my.cnf里面"-"和"_"有些博文写错导致mysql无法启动,排查起来费时费力,本文是网上的资料的集合也是填了几个基本会遇到的坑。
  玩转Mysql半同步和keepalived+MHA(一)只涉及mysql半同步的内容,keepalived+MHA我放在第二章。
  本次配置采用虚拟机环境
角色IPOSMySQLMHAmha-manager192.168.1.92CentOS 7无mha-manager mha-nodemysql-master192.168.1.151CentOS 7mysql-mastermha-nodemysql-slave01192.168.1.152CentOS 7mysql-slavemha-nodemysql-slave02192.168.1.153CentOS 7mysql-slavemha-node  分别在3台Centos7安装percona5.6
wget https://www.percona.com/redir/downloads/percona-release/redhat/latest/percona-release-0.1-4.noarch.rpm
rpm -ivh ./percona-release-0.1-4.noarch.rpm
yum install Percona-Server-server-56.x86_64 -y  192.168.1.151下面/etc/my.cnf的内容:
server-id=151
port=3306
log-bin=master-bin.log
log-bin-index=master-bin.index
expire-logs-days=14
#character-set-server = utf8mb4 #根据自己需要
#default-storage-engine=myisam #根据自己需要  192.168.1.152/3下面/etc/my.cnf的内容:
log-bin=mysql-bin
relay-log = slave-relay-bin
server-id=152#另外一台改下这里server-id=153
relay-log-index = slave-relay-bin.index
#replicate-wild-ignore-table = mysql.% #看需求
#default-storage-engine=myisam #看需求  启动mysql

systemctl restart mysql  启动不了请认真检查my.cnf和查看日志。
  进入主数据库得到binlog日志文件名和偏移量
mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      1216|            |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)  注意:如果是在使用数据库需要使用读锁
mysql>flush tables with read lock;
  备份主库数据库,并使用source恢复到从机。
mysqldump test > test.sql
  然后解锁主库
mysql>unlock tables;
  由于本文是新建虚拟机没有数据,这步可以略过。
  记录好binlogfile和position之后,在主库创建用户
grant replication slave on *.* to 'repl'@'192.168.1.152' identified by 'repl';
grant replication slave on *.* to 'repl'@'192.168.1.153' identified by 'repl';  分别进入152和153的mysql执行:
change master to master_host='192.168.1.151',master_user='repl',master_password='repl',master_port=3306,master_log_file='master-bin.000001',master_log_pos=1216;  安装插件,分别进入3台mysql执行:
mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so';
mysql> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';
mysql> set global rpl_semi_sync_master_enabled=on ;
注意 从库最后一行执行set global rpl_semi_sync_slave_enabled=on ;  注意:在启动slave之前,如果你使用虚拟机克隆功能或者直接copy,要删除/var/lib/mysql/auto.cnf,否则会提示同步失败。
  启动slave,分别进入152和153的mysql执行:
mysql> start slave;
mysql> set global read_only=1;  在从库查看show slave status\G;
  Slave_IO_Running: Yes
Slave_SQL_Running: Yes
  看到以上两个字段带兵同步成功。
  在主库可以使用
  show global status like 'rpl_semi%';
  查看同步情况。
  以上mysql半同步配置基本完成。



页: [1]
查看完整版本: 在Centos7玩转Mysql半同步和keepalived+MHA(一)