搭建MySQL+MHA服务易错位置
在 Slave1、Slave2 节点执行同步操作时如果两条线程为NO
- 网络不通
- my.cnf配置有问题
- 密码、file文件名、pos偏移量不对
- 防火墙没有关闭
在所有服务器上配置无密码认证
- ssh-keygen -t rsa 中间会有一个操作输入yes,不要回车太快
- 对每个服务器设置免密时要求输入密码,这里的密码是root用户的密码,不是mysql服务器的密码!!!!!!
在 manager 节点上测试 ssh 无密码认证
masterha_check_ssh -conf=/etc/masterha/app1.cnf
- 正常最后会输出 successfully;
- 如果失败可以去配置服务器免密登录的时候有没有配置错误几台服务器需要跟哪几台做免密一定要搞清楚!!!!
在 manager 节点上测试 mysql 主从连接情况
masterha_check_repl -conf=/etc/masterha/app1.cnf
- 最后出现 MySQL Replication Health is OK 字样说明正常;
- 出现MySQL Replication Health is NOT OK可以看一下我们之前在设置软链接是否设置
- 软连接不创建的话,无法开启故障检测
- ln -s /usr/local/mysql/bin/mysql /usr/sbin/
- ln -s /usr/local/mysql/bin/mysqlbinlog /usr/sbin/
- 配置文件有没有错误,请仔细检查
- app1.cnf
- master_ip_failover
需注意:第一次配置需要在master节点上手动开启虚拟IP
/sbin/ifconfig ens33:1 192.168.226.200/24
#解决中英字不兼容报错的问题
dos2unix /usr/local/bin/master_ip_failover
出现字符集报错
mysqlbinlog: unknown variable 'default-character-set=utf8'
mysqlbinlog version command failed with rc 7:0, please verify PATH, LD_LIBRARY_PATH, and client options
在所有MySQL服务器上注释掉clinet段default-character-set=utf8
更改默认字符集UTF8到utf8
[client]
#default-character-set = utf8
[mysql]
default-character-set = utf8
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8'
测试 ssh 无密码认证和测试 mysql 主从连接情况都通过,但是启动MHA服务查看谁为Master是直接终止进程,服务直接起不来
- 当我们检查主从复制没有任何问题时,我们要考虑是否是MHAmanager客户端是否有问题,这边可以考虑将所以的配置还原进行重新配置 manager 和 node组件重新安装,配置文件重新即可解决问题
总结
这个服务配置时一定要小心配置 有一个地方出错,将会环环相扣,一错到底。
服务挺坑的