Galera集群--搭建(2个数据节点+1个仲裁)
安装准备
安装包: mariadb-galera-10.0.15-linux-x86_64.tar.gz
测试环境
ip hostname 备注
192.168.1.111 test1 节点1
192.168.1.112 test2 节点2
192.168.1.113 test3 仲裁节点
1,关闭selinux:
将/etc/sysconfig/selinux 的selinux 设置成 disabled
2,修改或者关闭防火墙
修改防火墙:
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 4444 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 4567 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 4568 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 4569 -j ACCEPT
service iptables restart
关闭防火墙:
systemctl stop firewalld service iptables stop
安装lsof (不装可能无法启动数据库)
yum install -y lsof
3,安装数据库mariadb
下载安装包: mariadb-galera-10.0.15-linux-x86_64.tar.gz
解压
tar zxf mariadb-galera-10.0.15-linux-x86_64.tar.gz
修改地址
mv mariadb-galera-10.0.15-linux-x86_64 /usr/local/mysql
创建mysql用户
groupadd mysql
useradd -g mysql mysql
chmod mysql:mysql -Rf /usr/local/mysql
chmod +x -Rf /usr/local/mysql
cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
初始化数据库
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
添加mysql到开机启动
chkconfig mysql on
启动mysql
service mysqld start
设置mysql命令
vi /etc/profile
添加 export PATH=/usr/local/mysql/bin:$PATH
source /etc/profile
设置mysql密码
mysqladmin -u root passwd '123456'
实用root登录
mysql -uroot -p123456
4,搭建galera集群
注:mariadb-galera-10.0.15-linux-x86_64.tar.gz里面已经有了galera插件,也可以下载安装galera安装,集群中的软件版本必须保持一致
先启动111,再启动112,最后加入仲裁(启动顺序不同,wsrep.cnf文件中wsrep_cluster_address的配置略有不同)
安装galera
yum install -y galera
查找wsrep.cnf 文件
find / -name wsrep.cnf
结果:
find : .... /usr/local/mysql/support-files/wsrep.cnf
复制这个文件到etc/下
cp /usr/local/mysql/support-files/wsrep.cnf /etc/my.cnf.d/
修改配置文件
vi /etc/my.cnf.d/wsrep.cnf
wsrep_cluster_name="my_wsrep_cluster"
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address=gcomm://
#第一个节点启动,上面地址为空,后面节点加入集群,gcomm后面要加上集群的ip地址,非默认的4567端口时,地址格式为ip:port
#wsrep_cluster_address=gcomm://192.168.1.112
wsrep_node_name='localhost'
wsrep_node_address=192.168.1.111
wsrep_sst_method=rsync
修改/etc/my.cnf
vim /etc/my.cnf
添加语句 !includedir /etc/my.cnf.d/
注释掉语句 #binlog_format=mixed
server-id = 1
配置112中的galera,server-id为2,修改节点地址和集群gcomm地址
wsrep_cluster_address=gcomm://192.168.1.111
wsrep_node_name='localhost'
wsrep_node_address=192.168.1.112
server-id = 2
5,设置数据库的访问账号和权限
mysql -u root -p123456
>grant all privileges on *.* to 'root'@'localhost' identified by '123456';
>grant all privileges on *.* to 'root'@'%' identified by '123456';
>flush privileges;
修改wsrep.cnf文件相应部分
vim /etc/my.cnf.d/wsrep.cnf
wsrep_sst_auth=root:
6,启动集群
先启动111,再启动112,最后加入113仲裁节点
在111和112上先后执行 service mysqld start
在113仲裁上执行
(启动仲裁节点时候,可能遇到缺少libssl.so.6文件,需要用ln添加软连接)
garbd -a "gcomm://192.168.1.111:4567,192.168.1.112:4567 -g my_wsrep_cluster -d
修改仲裁节点的监听端口,防止与数据库冲突
garbd -a "gcomm://192.168.1.111:4567,192.168.1.112:4567?gmcast.listen_addr=tcp://0.0.0.0:4569&pc.wait_prim=no" -g my_wsrep_cluster -d
113执行命令后,用ps -ef|grep garbd 查看进程
7,查看集群状态
113执行命令后,用ps -ef|grep garbd 查看进程
在111和112上查看数据库中状态
mysql -uroot -p123456
>show status like 'wsrep%';
查看wsrep_incoming_addresses 192.168.1.111:3306,192.168.1.112:3306,
wsrep_cluster_size 3
完成集群