环境准备
服务器 192.168.10.30 192.168.10.31 192.168.10.204
服务器间免密登录(非必须)
ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.10.31
ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.10.204
设置主机名 (环境配置及安装三台机器一样)
修改三台机器域名解析
vim /etc/hosts
192.168.10.30 db1
192.168.10.31 db2
192.168.10.204 db3
关闭防火墙 设置时间同步(环境配置及安装三台机器一样)
[root@localhost ~]# yum -y install ntp ntpdate ntp-doc && systemctl restart ntpd && systemctl enable ntpd
安装数据库(环境配置及安装三台机器一样)
[root@localhost ~]# mkdir -p /data/tools
[root@localhost ~]# cd /data/tools/下载地址
mariadb-mariadb-10.2.44-yum-centos-7.5-x86_64-rpms安装包下载_开源镜像站-阿里云
选择对应的操作系统和CPU型号的rpms
下载rpms

# 安装
yum -y install galera-25.3.28-1.rhel7.el7.centos.x86_64.rpm jemalloc-* MariaDB-* libzstd-1.3.4-1.el7.x86_64.rpm
#启动
systemctl enable --now mariadb
# 初始化
mysql_secure_installation可以登录证明单台安装成功

集群
集群配置
三台数据库安装完毕后 分别配置三台服务器配置文件, vim /etc/my.cnf.d/server.cnf
其中 wsrep_node_name wsrep_node_address 需要跟当前机器 ip、名称相同,其他配置 三台机器一样。
[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name='Galera_Cluster' # Galera集群名称
wsrep_cluster_address="gcomm://192.168.10.30,192.168.10.31,192.168.10.204"
wsrep_node_name=db1 #节点主机名
wsrep_node_address=192.168.10.30 #节点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=2
innodb_flush_log_at_trx_commit=0
#0.log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行。该模式下在事务提交的时候,不会主动触发写入磁盘的操作。
#1:每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去,该模式为系统默认。
#2:每次事务提交时MySQL都会把log buffer的数据写入log file,但
innodb_buffer_pool_size=120M #设置缓存池大小
wsrep_sst_method=rsync #远程同步
wsrep_causal_reads=ON #避免各个节点的数据不一致,这种情况需要等待全同步复制
# this is only for embedded server
[embedded]选择其中一台执行,启动第一个主
mysqld_safe --wsrep_cluster_address=gcomm://192.168.10.30,192.168.10.31,192.168.10.204 >/dev/null &
/bin/galera_new_cluster其他的直接启动就可以了
systemctl start mariadb
启动后选择其中一台检查集群状态,可以看到当前主机状态是就绪,集群节点为3

注 : 如果集群启动出问题,需要编辑var/lib/mysql/grastate.dat文件 中的
safe_to_bootstrap状态为1 ,并且重新执行galera_new_cluster测试集群
其中一台执行

其他的显示

远程访问,除了要开启防火墙端口过滤 还需要授权;
#登录
mysql -u root -p rootpass
#选择库
use mysql;
#查询可访问的用户和IP
select host,user,password from user;
#增加一条 root的任意IP访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
%代表所有,此时可以从其他IP访问当前数据库
版权声明:本文为csg103原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。