一。安装环境:centos七、MariaDB 10.4 stable、3节点IP:192.168.56.12二、192.168.56.12三、192.168.56.124node
二。集群安装mysql
官网安装教程:https://mariadb.com/kb/en/library/yum/sql
从MariaDB 10.1版本开始,Galera Cluster支持已包含在标准MariaDB Server软件包中。数据库
在MariaDB 10.4及更高版本中,您还须要安装该galera-4软件包以获取Galera 4 wsrep提供程序库。vim
2.1 节点间配置通讯,可参考:linux VM间配置ssh免密互信:centos
vim /etc/hosts 192.168.56.122 centos122 192.168.56.123 centos123 192.168.56.124 centos124
2.2 每一个节点下执行(配置yum源):ssh
vim /etc/yum.repos.d/MariaDB.repo
# http://downloads.mariadb.org/mariadb/repositories/ [mariadb] name = MariaDB baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.4/centos7-amd64 gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck=1
保存配置:Esc后输入“:wq”;刷新:yum clean all;yum makecachetcp
注意:baseurl和gpgkey不是官网给的地址(国外镜像很慢),改为了国内镜像地址。或者改为:ide
baseurl = https://ipv4.mirrors.ustc.edu.cn/mariadb/yum/10.4/centos7-amd64
gpgkey=https://ipv4.mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
2.3 每一个节点下安装MariaDB:
yum install MariaDB-server MariaDB-client galera-4 -y
三。集群启动
3.1 每一个节点下修改server配置:
[root@centos122 ~]# vim /etc/my.cnf.d/server.cnf
[galera] # Mandatory settings wsrep_on=ON wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so wsrep_cluster_address="gcomm://192.168.56.122,192.168.56.123,192.168.56.124" #整个集群的IP地址 binlog_format=row default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 # # Allow server to accept connections on all interfaces. # #bind-address=0.0.0.0 # # Optional setting #wsrep_slave_threads=1 #innodb_flush_log_at_trx_commit=0 wsrep_provider_options="gcache.size=1G" wsrep_cluster_name=MariaDB-Galera-Cluster #集群名称 wsrep_node_name=centos122 #hostname,对应前面网路配置/etc/hosts wsrep_node_address=192.168.56.122 #机器IP地址 wsrep_sst_method=rsync #同步方式
除wsrep_node_name、wsrep_node_address每一个节点不一样,其它配置相同。
注意:wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so中的目录是galera-4(MariaDB 10.4以前是galera),不然报错
[ERROR] wsrep_load(): dlopen(): /usr/lib64/galera/libgalera_smm.so: cannot open shared object file: No... directory [ERROR] WSREP: Failed to create a new provider '/usr/lib64/galera/libgalera_smm.so' with optio...ep library
3.2 启动集群:
去第一个122节点启动集群(底层调用的是mysqld --wsrep-new-cluster命令):
galera_new_cluster
而后去其它2节点启动mariadb(底层调用的是/bin/systemctl start mariadb.service命令,会自动加入集群中):
service mariadb start
查看日志:
systemctl status mariadb.service
Jul 10 10:40:52 centos122 mysqld[2085381]: 0: 1e2b23d4-a22c-11e9-9bc6-23944a901828, centos123 Jul 10 10:40:52 centos122 mysqld[2085381]: 1: 55ae61f3-a22c-11e9-ba18-4b92bba70395, centos124 Jul 10 10:40:52 centos122 mysqld[2085381]: 2: c123f182-a22b-11e9-ba00-7f7033924971, centos122 Jul 10 10:40:52 centos122 mysqld[2085381]: ================================================= Jul 10 10:40:52 centos122 mysqld[2085381]: 2019-07-10 10:40:52 3 [Note] WSREP: wsrep_notify_cmd is not defined, skipping notification. Jul 10 10:40:52 centos122 mysqld[2085381]: 2019-07-10 10:40:52 0 [Note] WSREP: 0.0 (centos123): State transfer to 1.0 (centos124) complete. Jul 10 10:40:52 centos122 mysqld[2085381]: 2019-07-10 10:40:52 0 [Note] WSREP: Member 0.0 (centos123) synced with group. Jul 10 10:40:54 centos122 mysqld[2085381]: 2019-07-10 10:40:54 0 [Note] WSREP: (c123f182, 'tcp://0.0.0.0:4567') turning message relay requesting off Jul 10 10:40:59 centos122 mysqld[2085381]: 2019-07-10 10:40:59 0 [Note] WSREP: 1.0 (centos124): State transfer from 0.0 (centos123) complete. Jul 10 10:40:59 centos122 mysqld[2085381]: 2019-07-10 10:40:59 0 [Note] WSREP: Member 1.0 (centos124) synced with group.
可看到12三、124节点加入到122建立的mysql集群的日志信息。
查看mysql进程状态:
[root@centos122 galera-4]# ps aux | grep mysql mysql 2085381 0.4 0.1 3540764 106680 ? Ssl 17:27 0:05 /usr/sbin/mysqld --wsrep-new-cluster --wsrep_start_position=00000000-0000-0000-0000-000000000000:-1
四。集群经常使用命令
登陆数据库,查看集群成员数(SHOW STATUS LIKE"wsrep_cluster_size"):
[root@centos122 galera-4]# mysql
MariaDB [(none)]> show status like 'wsrep_cluster%'; +----------------------------+--------------------------------------+ | Variable_name | Value | +----------------------------+--------------------------------------+ | wsrep_cluster_weight | 3 | | wsrep_cluster_capabilities | | | wsrep_cluster_conf_id | 18446744073709551615 | | wsrep_cluster_size | 3 | | wsrep_cluster_state_uuid | c1434da2-a22b-11e9-97bd-2fcc5b042cda | | wsrep_cluster_status | Primary | +----------------------------+--------------------------------------+
补充:
关闭防火墙
[root@node1 ~]# systemctl stop firewalld
[root@node1 ~]# systemctl disable firewalld
关闭SELINUX
[root@node1 ~]# vi /etc/selinux/config
修改为以下:
SELINUX=disabled
卸载MariaDB:
[root@centos122 galera-4]# ps aux | grep mysql mysql 2085381 0.3 0.1 3540764 106944 ? Ssl 17:27 0:07 /usr/sbin/mysqld --wsrep-new-cluster --wsrep_start_position=00000000-0000-0000-0000-000000000000:-1 root 2206822 0.0 0.0 112712 984 pts/1 S+ 17:59 0:00 grep --color=auto mysql [root@centos122 galera-4]# kill -9 2085381
yum -y remove Maria* rm -rf /var/lib/mysql/* rm -rf /etc/my.cnf.d/ rm -rf /etc/my.cnf