特别注意:如果命令直接复制粘贴出现错误,则手动输入可解决!
(注意:
(1)文中红色字体部分不一定需要操作
(2)由于word编辑的原因,实际操作时部分命令需要手动输入!!不然提示错误! )
一 搭建环境:
1 Ubuntu16.04版本(系统登录:root(199077)) 2 mysql5.7(用户名root 密码199077) 二 安装环境:
首先,不论是在云服务器、物理机还是虚拟机上,至少需要3台主机(我们将这三台主机称为“Nodes”),对于每一个”Node”,硬件最低配置要求为: - 1GHz单核CPU - 512M的内存
- 100Mbps的网络连接 - 三台主机IP为:
- Node1: 192.168.93.135(主节点) - Node2: 192.168.93.132(从节点1) - Node3: 192.168.93.134(从节点2)
其次要禁用SElinux、防火墙配置、禁用AppArmor, 这些在Ubuntu14.04下都是不用配置的,所以就不详细说明配置步骤。但在16.04环境下需严格配置:
(1)禁用SELinux的mysqld
如果你启用了SELinux,它可能会阻止 mysqld从执行所需的操作。你必须禁用SELinux mysqld或允许配置它 mysqld上运行外部程序和开放的监听套接字端口外,非特权用户可以做的事情。
禁用SELinux mysql运行以下命令:
semanage permissive -a mysqld_t
(2)防火墙配置:我们需要在每个节点上设置其防火墙规则,使得各个节点能与集群通信。在每个节点上均执行如下命令:
iptables --append INPUT --protocol tcp \\
--source 192.168.93.135 --jump ACCEPT iptables --apend INPUT --protocol tcp \\
--source 192.168.93.132 --jump ACCEPT iptables --append INPUT --protocol tcp \\ --source 192.168.93.134 --jump ACCEPT
然后保存防火墙规则:
iptables-save
(3)禁用Ubuntu的apparmor:apparmor主要是Ubuntu系统中对mysql访问权限的控制,我们必须禁用AppArmor,以便配置mysql的mysqld能够运行外部程序。 禁用apparmor:
sudo ln -s /etc/apparmor.d/usr /etc/apparmor.d/disable/.sbin.mysqld
重启apparmor:
sudo service apparmor restart
注:如果不禁用,则在登录mysql时会出现如下错误: apparmor=\........ 对应解决方案:
第一种:依次执行如下命令: apt install apparmor-utils
sudo aa-complain/etc/apparmor.d/usr.sbin.mysqld service apparmor restart
第二种:直接修改apparmor配置文件
nano /etc/apparmor.d/usr.sbin.mysqld 在配置文件中增加”flags=(complain)” /usr/sbin/mysqld flags=(complain) { #include
#include
三 开始安装
(1)安装对应依赖
apt-get install python-software-properties apt-get install software-properties-common (2)添加GunPG key
apt-key adv --keyserver keyserver.ubuntu.com --recv BC19DDBA (3)配置Ubuntu下galera源 创建galera.list文件:
cd /etc/apt/sources.list.d touch galera.list nano -w galera.list
在galera.list中添加内容:
#deb http://releases.galeracluster.com/mysql-wsrep-5.7/ubuntu xenial main #deb http://releases.galeracluster.com/galera-3/ubuntu xenial main deb http://releases.galeracluster.com/ubuntu xenial main
如果不清楚自己的Ubuntu详细信息,可通过命令lsb_release -a来查看。 (4)继续配置源
cd /etc/apt/preferences.d touch galera.pref
nano -w /etc/apt/preferences.d/galera.pref 在galera.pref文件中添加内容: Package: *
Pin: origin releases.galeracluster.com Pin-Priority: 1001
(5)接下来更新一下:apt-get update
(6) 一旦在所有三个服务器上更新了存储库,我们就可以在三台服务器上运行以下命令安装MySQL5.7的修补程序与Galera
apt-get install galera-3 galera-arbitrator-3 mysql-wsrep-5.7 (7)安装完成之后,在每一个节点上启动Mysql: Service mysql start
(8)验证节点之间是否能互相ping通: 主节点135上:
Ping 192.168.93.132 Ping 192.168.93.134 从节点132上:
Ping 192.168.93.135 Ping 192.168.93.134 从节点134上:
Ping 192.168.93.135 Ping 192.168.93.132
能ping同则表示三节点之间能互相通信。
(9)分别在三个节点上修改mysql的配置文件/etc/mysql/my.cnf 主节点135上:
# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. #
# This program is free software; you can redistribute it and/or modify
mysql galera cluster高可用集群搭建方案
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)