mysql mha安装以及安装出现问题处理办法



Mysql-MHA 安装及安装过程中遇到的问题  


首先安装mysql软件
一主机部署
master机:192.168.31.101
slave1机:192.168.31.102(备用master)
slave2机(manager):192.168.31.103
大致步骤
A.首先用ssh-keygen实现四台主机之间相互免密钥登录
B.安装MHAmha4mysql-node,mha4mysql-manager 软件包
C.建立master,slave1,slave2之间主从复制
D.管理机manager上配置MHA文件
E.masterha_check_ssh工具验证ssh信任登录是否成功
F.masterha_check_repl工具验证mysql复制是否成功
G.启动MHA manager,并监控日志文件
H.测试master(156)宕机后,是否会自动切换


 
二主从复制配置(建立master,slave1,slave2之间主从复制)
  在master机器上配置my.cnf文件
  1.vim /etc/my.cnf
  server-id=1
  log-bin=mysql-bin
  binlog_format=mixed
  2.mysql> GRANT ALL PRIVILEGES ON *.* TO 'rep'@'192.168.31.%' IDENTIFIED BY 'rep';
  mysql> flush privileges;
  3.mysql> show master status;
  [slave1,slave2]
4.change master操作
mysql> change master to
master_host='192.168.31.101',
master_port=3306,
master_user='rep',
master_password='rep',
master_log_file='mysql-bin.000001',
master_log_pos=112;
5.在备机(slave1)上也要授权
mysql> GRANT ALL PRIVILEGES ON *.* TO 'rep'@'192.168.31.%' IDENTIFIED BY 'rep';
[master,slave1,slave2]
6.查看主从复制是否成功的一些命令
mysql> start slave;
mysql> stop slave;
mysql> reset slave;
mysql> show slave status\G;
7.所有主机上设置复制权限帐号
例如在192.168.31.101设置
mysql> GRANT ALL PRIVILEGES ON *.* TO 'mha_rep'@'192.168.31.102' IDENTIFIED BY '123456';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'mha_rep'@'192.168.31.103' IDENTIFIED BY '123456';
此用户密码对应MHA配置文件里[server default]小节user和password。
三 MHA配置 
 1 依赖安装:
 在node节点上,执行下面的命令:
yum install perl-DBD-MySQL
在manager节点上:
yum install perl-DBD-MySQL
yum install perl-Config-Tiny
 yum install perl-Log-Dispatch
yum install perl-Parallel-ForkManager
yum install -y rrdtool perl-rrdtool rrdtool-devel perl-Params-Validate


 2 rpm包安装:
manager节点:
 rpm -ivh mha4mysql-manager-0.53-0.el6.noarch.rpm
rpm -ivh mha4mysql-node-0.53-0.el6.noarch.rpm
node节点:
rpm -ivh mha4mysql-node-0.53-0.el6.noarch.rpm
3 配置
mkdir -p /etc/masterha/
mkdir -p /var/log/masterha/app1/
将下面的内容写进/etc/masterha/app1.cnf:
[server default]
manager_workdir=/var/log/masterha/app1
manager_log=/var/log/masterha/app1/manager.log
user=admin
password=admin
ssh_user=root
repl_user=repl
repl_password=repl
ping_interval=1
shutdown_script=""
master_ip_online_change_script=""
report_script=""




[server1]
hostname=192.168.126.129
port=3306
candidate_master=1
master_binlog_dir="/home/mysql/mydata/data1/binlog"




[server2]
hostname=192.168.126.130
port=3306
candidate_master=1
master_binlog_dir="/home/mysql/mydata/data1/binlog"


[server3]
hostname=192.168.126.130
port=3307


[server4]
hostname=192.168.126.130
port=3308


[server5]
hostname=192.168.126.129
port=3307


[server6]
hostname=192.168.126.129
port=3308




 4 配置ssh免秘钥:
MHA环境需要三台主机需要相互信任:实现三台主机之间相互免密钥登录。
用ssh-keygen创建公钥,一直默认回车,最后会在.ssh/下面生成id_rsa.pub
ssh-keygen -t rsa  
把id_rsa.pub 文件复制到另外2台机子并导入公钥: 
cat id_rsa.pub >> /root/.ssh/authorized_keys 




(实验 将别的机器的公共秘钥赋值到本地,然后追加到本地的authorized_keys文件中
在192.168.31.103上操作
scp root@192.168.31.101:/root/.ssh/id_rsa.pub /root/.ssh/101.pub
cat /root/.ssh/101.pub>>/root/.ssh/authorized_keys


scp root@192.168.31.102:/root/.ssh/id_rsa.pub /root/.ssh/102.pub
cat /root/.ssh/102.pub>>/root/.ssh/authorized_keys


cat /root/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys 


)
当然也可以直接复制里面的内容再粘帖到authorized_keys中。 这样204可以直接访问到其他2台机子了 
ssh 192.168.200.201 
ssh 192.168.200.202 


同理在另外2台机子上面操作,让他们之间实现无密码登入。




masterha_check_ssh工具验证ssh信任登录是否成功
masterha_check_ssh --conf=/etc/masterha/app1.cnf


masterha_check_repl工具验证mysql复制是否成功
masterha_check_repl --conf=/etc/masterha/app1.cnf


启动MHA manager,并监控日志文件
masterha_manager --conf=/etc/masterha/app1.cnf > /tmp/mha_manager.log  2>&1 &




查看日志文件(/masterha/app1/manager.log)


 看一下状态:
masterha_check_status --conf=/etc/masterha/app1.cnf 




1.运行masterha_check_repl --conf=/etc/masterha/app1.cnf


   Can't exec "mysqlbinlog": No such file or directory at /usr/local/perl5/MHA/BinlogManager.pm line 99.


   在node节点上执行 which mysqlbinlog,比如我的结果就是


   [localhost~]$ which mysqlbinlog
   /usr/local/mysql/bin/mysqlbinlog


   需要做一个软连接


   ln -s /usr/local/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog
(shiyan:ln -s /data/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog)
 
Testing mysql connection and privileges..sh: mysql: command not found
mysql command failed with rc 127:0!
 at /usr/bin/apply_diff_relay_logs line 367
        main::check() called at /usr/bin/apply_diff_relay_logs line 486
        eval {...} called at /usr/bin/apply_diff_relay_logs line 466
        main::main() called at /usr/bin/apply_diff_relay_logs line 112
Tue Apr 14 13:32:29 2015 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln195] Slaves settings check failed!
Tue Apr 14 13:32:29 2015 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln375] Slave configuration failed.
Tue Apr 14 13:32:29 2015 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln386] Error happend on checking configurations.  at 


/usr/bin/masterha_check_repl line 48
Tue Apr 14 13:32:29 2015 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln482] Error happened on monitoring servers.
Tue Apr 14 13:32:29 2015 - [info] Got exit code 1 (Not master dead).
找不到mysql命令,把你mysql安装的目录下的bin目录,做一个软链接就可以了
ln -s /usr/local/mysql/bin/mysql /usr/bin


(shiyan:ln -s /data/mysql/bin/mysql /usr/bin)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值