1. 准备工作
软件包版本
mysql-5.7.17.tar.gz
cmake-3.6.2.tar.gz
mha4mysql-manager-0.57.tar.gz
mha4mysql-node-0.57.tar.gz
服务器明细
kp-bt-101 Master
kp-bt-102 Candidate Master
kp-bt-103 Slave
kp-bt-13 MHA-manager
2. 安装MySQL服务
解决依赖关系
1 | # yum install -y gcc-c++ ncurses-devel openssh-clients |
配置ssh互信
1 | 在所有服务器均做如下配置 |
安装cmake
1 | # tar zxf cmake-3.6.2.tar.gz |
准备Boost库支持
1 | # mkdir /usr/local/boost |
创建Mysql安装目录以及数据库文件存放的路径
1 | # mkdir -p /home/mysql |
创建mysql用户以及对应用户组
1 | # groupadd mysql |
编译安装MySQL
1 | # tar zxf mysql-5.7.17.tar.gz |
修改MySQL目录权限
1 | # chown -R mysql.mysql /home/mysql/ |
准备MySQL配置文件
1 | # cp support-files/my-default.cnf /etc/my.cnf |
初始化数据库、创建数据库系统表
1 | # cd /home/mysql/ |
设置环境变量
1 | # vim /etc/profile.d/mysql.sh |
为MySQL提供服务脚本,并将MySQL服务加入开机启动
1 | # cp support-files/mysql.server /etc/init.d/mysql |
启动MySQL服务
1 | # /etc/init.d/mysql start |
修改MySQL初始root密码
1 | # mysqladmin -uroot password 'password' -p'dh9>qmyaBIZe' |
配置iptables规则
1 | # iptables -I INPUT -p tcp --dport 3306 -s 192.168.1.0/24 -j ACCEPT |
3. 配置主从复制
创建数据库管理账号和复制账号及MHA监控账号
1 | 所有服务器均执行 |
配置主从复制
1 | Master |
设置从库只读
1 | mysql> set global read_only=1; |
检查主库、从库状态
1 | Master |
4. 安装配置MHA
安装MHA-manager
1 | 解决依赖关系 |
安装MHA-node
1 | 在所有MySQL节点安装mha-node |
配置MHA
1 | 创建MHA的工作目录,并且创建相关配置文件(在软件包解压后的目录里面有样例配置文件) |
设置relay log的清除方式(在每个slave节点上)
1 | mysql> set global relay_log_purge=0; |
设置定期清理relay脚本(slave)
1 | # vim purge_relay_log.sh |
在MHA-master上检查ssh配置
1 | 检查MHA Manger到所有MHA Node的SSH连接状态: |
使用MHA-manager检查复制集群状态
1 | # masterha_check_ssh --conf=/etc/masterha/app1.cnf |
检查复制状态is NOT OK的集中常见错误及解决办法
1 | 报错提示: |
再次运行masterha_check_repl脚本检查集群复制状态
1 | # masterha_check_repl --conf=/etc/masterha/app1.cnf |
配置自动故障vip切换脚本
1 | #!/usr/bin/env perl |
配置手动故障vip切换脚本
1 | #!/usr/bin/env perl |
检查集群状态
1 | # masterha_check_repl --conf=/etc/masterha/app1.cnf |
启动和关闭MHA-manager
1 | 启动 |
检查MHA-manager状态
1 | # masterha_check_status --conf=/etc/masterha/app1.cnf |