一、安装环境准备
1、系统:
CentOS Linux release 7.4.1708 (Core)
2、hosts
10.6.32.51 openstack1
10.6.32.52 openstack2
10.6.32.53 openstack3
3、关闭防火墙和Selinux
4、同步时间:
博客:http://www.cnblogs.com/weijie0717/p/8549204.html
5、查看和卸载 系统原有的 mariadb、mysql (必须卸载,否则后期会有问题):
# rpm -qa | grep -i maria
# rpm -qa | grep -i mysql
# yum remove mariiadb
# yum remove mysql
二、集群部署
1、包安装
# yum install MariaDB-Galera-server galera
# yum install percona-xtrabackup -y
# yum install perl-Time-HiRes.x86_64 socat percona-toolkit -y
2、修改基础配置文件 (所有节点操作)
# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
# vim /etc/my.cnf
注释以下行: binlog_format=mixed server-id = 1
# vim /etc/my.cnf.d/server.cnf
添加或取消注释如下行: [mysqld] #.... datadir=/var/lib/mysql log-error=/var/log/mysqld.log [galera] #... binlog_format=row default_storage_engine=InnoDB innodb_autoinc_lock_mode=2
3、启动服务,修改密码 (节点1操作)
# systemctl start mysql
# mysql # mariadb 默认没有密码,可以直接进入
MariaDB [(none)]> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
MariaDB [(none)]> GRANT ALL ON *.* TO 'galera'@'localhost' IDENTIFIED BY 'yourpasswd'; (添加用户:galera,后期集群配置文件用到 )
4、配置集群文件 (所有节点)
# vim /etc/my.cnf.d/server.cnf
添加如下行,红色字体为个节点的差异配置,和自定义配置。 bind-address=10.6.32.51 server-id=101 wsrep_cluster_name=openstack_cluster wsrep-provider=/usr/lib64/galera/libgalera_smm.so wsrep_node_name = openstack1 wsrep_cluster_address=gcomm://10.6.32.51,10.6.32.52,10.6.32.53 wsrep_node_address=10.6.32.51 wsrep_provider_options =gmcast.listen_addr=tcp://10.6.32.51:4567 wsrep_sst_donor=openstack1,openstack2,openstack3 wsrep_sst_method=xtrabackup-v2 #集群数据同步方式( xtrabackup-v2或rsync 都需要安装所匹配的插件) wsrep_sst_auth=galera:yourpasswd slow_query_log=on
5、集群启动
a、当集群中还没有节点启动时,确认所有节点上没有mysql进程,如果有请关闭。(所有节点操作)
# ps -aux | grep mysql
# kill -9 mysql-id
b、启动集群中第一个节点。(openstack1 上操作)
# /etc/init.d/mysql start --wsrep-new-cluster --user=root (当且仅当 集群中没有任何节点开启,启动第一个节点时使用)
c、启动其他节点,逐台启动,然后查看集群状态
# systemctl start mysqld (集群中有节点后就可以正常启动。openstack2 和openstack3 上依次启动,启动一台查看依次集群状态)
d、重新启动第一个节点的数据库(opoenstsck1上操作)
# kill -i mysq-id (因为第一次为非正常启动,需要使用kill 杀掉进程来关闭mysql)
# systemctl restart mysqld
(如果重启失败,请查看/var/lib/mysql/mysql.sock.lock 是否存在,如果存在,删除后重新启动。)
e、在各节点使用 数据同步用户galera登录,如果可以正常启动并登录成功。到此,Galera Cluster 已经成功部署。
三、测试
参考:Centos 7 下 Mysql 5.7 Galera Cluster 集群部署
谢谢!!!