为了方便我们后期的操作,我们在各节点的/etc/hosts文件配置内容中添加如下内容:
192.168.37.111 node1.keer.com node1 192.168.37.122 node2.keer.com node2 192.168.37.133 node3.keer.com node3 192.168.37.144 node4.keer.com node4这样的话,我们就可以通过 host 解析节点来打通私钥访问,会方便很多。
本步骤完成。
3.1.2 初始主节点 master 的配置
我们需要修改 master 的数据库配置文件来对其进行初始化配置:
[root@master ~]# vim /etc/my.cnf [mysqld] server-id = 1 //复制集群中的各节点的id均必须唯一 log-bin = master-log //开启二进制日志 relay-log = relay-log //开启中继日志 skip_name_resolve //关闭名称解析(非必须) [root@master ~]# systemctl restart mariadb本步骤完成。
3.1.3 所有 slave 节点依赖的配置
我们修改两个 slave 的数据库配置文件,两台机器都做如下操作:
[root@slave1 ~]# vim /etc/my.cnf [mysqld] server-id = 2 //复制集群中的各节点的id均必须唯一; relay-log = relay-log //开启中继日志 log-bin = master-log //开启二进制日志 read_only = ON //启用只读属性 relay_log_purge = 0 //是否自动清空不再需要中继日志 skip_name_resolve //关闭名称解析(非必须) log_slave_updates = 1 //使得更新的数据写进二进制日志中 [root@slave1 ~]# systemctl restart mariadb [root@slave2 ~]# vim /etc/my.cnf [mysqld] server-id = 3 //复制集群中的各节点的id均必须唯一; relay-log = relay-log //开启中继日志 log-bin = master-log //开启二进制日志 read_only = ON //启用只读属性 relay_log_purge = 0 //是否自动清空不再需要中继日志 skip_name_resolve //关闭名称解析(非必须) log_slave_updates = 1 //使得更新的数据写进二进制日志中 [root@slave2 ~]# systemctl restart mariadb 本步骤完成。
下面只会给出命令,具体的知识及过程详解见我的上一篇博客——实战项目——mysql主从架构的实现。
master 节点上:
slave 节点上:
MariaDB [(none)]> change master to master_host='192.168.37.122', -> master_user='slave', -> master_password='keer', -> master_log_file='mysql-bin.000001', -> master_log_pos=415; MariaDB [(none)]> start slave; MariaDB [(none)]> show slave status\G; 本步骤完成。
在所有 Mysql 节点授权拥有管理权限的用户可在本地网络中有其他节点上远程访问。 当然, 此时仅需要且只能在 master 节点运行类似如下 SQL 语句即可。
MariaDB [(none)]> grant all on *.* to 'mhaadmin'@'192.168.%.%' identified by 'mhapass'; 本步骤完成。
MHA集群中的各节点彼此之间均需要基于ssh互信通信,以实现远程控制及数据管理功能。简单起见,可在Manager节点生成密钥对儿,并设置其可远程连接本地主机后, 将私钥文件及authorized_keys文件复制给余下的所有节点即可。
下面操作在所有节点上操作: