mariadb集群环境搭建

1.安装相关软件包
yum install rsync gcc ntp make -y

2.添加mysql用户
[root@RS1 ~]# useradd -s /bin/nologin mysql -M -r

3.查看mysql用户
[root@RS1 ~]# id mysql uid=1005(mysql) gid=1005(mysql) 组=1005(mysql)


四、下载安装MariaDB
1.搭建环境相关软件包
mariadb-10.5.19-linux-systemd-x86_64.tar.gz和openssl-1.0.1e.tar.gz

下载链接: https://pan.baidu.com/s/1bfb6h7XqgDjexrsQLgG1rQ 

提取码:aa1h

2.解压及软连接设置
#解压到/opt目录

[root@RS1 ~]# tar -xvf mariadb-10.5.19-linux-systemd-x86_64.tar.gz -C /opt

#在/usr/local目录下创建mysql软连接指向mariadb解压目录

[root@RS1 ~]# cd /usr/local

[root@RS1 ~]# ln -s /opt/mariadb-10.5.19-linux-systemd-x86_64 mysql  

[root@RS1 ~]# chown root.root -R mysql


五、SSH登录验证同步
1.配置主机名
[root@RS1 ~]# vim /etc/hosts

172.16.1.15     RS1

172.16.1.16     RS2

172.16.1.17     RS3

2.SSH免密登录
ssh-keygen  (3台机器都需要操作)

ssh-copy-id -i ~/.ssh/id_rsa.pub RS2 (只需要在第一台操作)

ssh-copy-id -i ~/.ssh/id_rsa.pub RS3 (只需要在第一台操作)

3.验证登录
ssh root@RS2

ssh root@RS3


六、更新PATH环境
[root@RS1 ~]# echo "PATH=/usr/local/mysql/bin:$PATH" > /etc/profile.d/mysql.sh

[root@RS1 ~]# source /etc/profile.d/mysql.sh


七、初始化数据库
[root@RS1 ~]# mkdir /data/mysql -p

[root@RS1 ~]# chown -R mysql.mysql /data/mysql

[root@RS1 ~]# cd /usr/local/mysql/

[root@RS1 mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

[root@RS1 mysql]# ll /data/mysql/


八、修改/etc/my.cnf配置文件
1. 创建两个目录存放log和pid
[root@RS1 ~] mkdir /data/mysql/{log,pid}

[root@RS1 ~] chown mysql.mysql -R /data/mysql

2.修改配置文件/etc/my.cnf
[root@RS1 ~]# vim /etc/my.cnf

----手动修改数据存放及socket存放位置----

datadir=/data/mysql socket=/data/mysql/mysql.sock #socket=/var/lib/mysql/mysql.sock

----手动添加日志格式设置为ROW----

binlog_format='ROW'

----手动修改日志和pid进程存放位置----

log-error=/data/mysql/log/mariadb.log pid-file=/data/mysql/pid/mariadb.pid

pid-file=/data/mysql/pid/mariadb.pid

3.添加启动mariadb服务
[root@RS1 mysql]# cp support-files/systemd/mariadb.service /lib/systemd/system/

[root@RS1 mysql]# cp support-files/systemd/mariadb.service /usr/lib/systemd/system/mariadb.service

[root@RS1 mysql]# ln -s /data/mysql/mysql.sock /tmp/mysql.sock

[root@RS1 mysql]# systemclt daemon-reload

[root@RS1 mysql]# systemctl start mariadb

4.设置root密码
/usr/local/mysql/bin/mysql_secure_installation

5.禁用firewalld和selinux
systemctl disable firewalld

sed -i 's#SELINUX=enforcing#SELINUX=disable#g' /etc/selinux/config

6.设置任意登录权限密码
[root@RS1 ~]# mysql -uroot -p123456

MariaDB [(none)]> GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

MariaDB [(none)]> FLUSH PRVILEGES;

7.客户端测试连接


九、集群配置
1./etc/my.cnf末行添加配置
[root@RS1 ~]# vim /etc/my.cnf

# ----手动添加galera配置----

[galera]

wsrep_on=ON

wsrep_provider=/usr/local/mysql/lib/libgalera_smm.so

wsrep_node_name='galera1'

wsrep_node_address='172.16.1.15'

wsrep_cluster_name='galera-cluster'

wsrep_cluster_address="gcomm://172.16.1.15,172.16.1.16,172.16.1.17"

wsrep_provider_options="gcache.size=200M; gcache.page_size=200M"

wsrep_slave_threads=1

innodb_flush_log_at_trx_commit=2

innodb_buffer_pool_size=10240M

wsrep_sst_method=rsync

2.RS2和RS3主机配置
参照RS1配置,设置主机名,安装mariadb,galera配置

3.启动集群
[root@RS1 ~]# galera_new_cluster

[root@RS1 ~]# systemctl enable mariadb

# 在RS2和RS3执行如下命令

systemctl enable --now mariadb

#查看集群数量

[root@RS1 ~]# mysql -uroot -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

Enter password:  

+--------------------+-------+

| Variable_name      | Value |

+--------------------+-------+

| wsrep_cluster_size | 3     |

+--------------------+-------+

# 在RS1上创建一个测试数据库

mysql -e "create database galera_test character set utf8 collate utf8_general_ci;"

# 在RS2上查看发现数据库已经同步了

[root@RS2 openssl-1.0.1e]# mysql -e "show databases;"

+--------------------+

| Database           |

+--------------------+

| galera_test        |

| information_schema |

| log                |

| mason              |

| mysql              |

| performance_schema |

| pid                |

| test               |

+--------------------+

十、附录
安装报错处理
:: [ERROR] WSREP: wsrep_load(): dlopen():  libssl.so.: cannot open shared object file: No such file or directory :: [ERROR] WSREP: wsrep_load(/app/mariadb-galera-10.0.-linux/lib/galera/libgalera_smm.so) failed: Invalid argument (). Reverting to no provider.

需要安装openssl-1.0.1

cd /usr/local/mysql/lib

# 查看下类库,如果下面两个指向NOT FOUND,安装openssl-1.0.1e.tar.gz

[root@RS1 lib]# ldd ./libgalera_smm.so

libcrypto.so.1.0.0 => /lib64/libcrypto.so.1.0.0 (0x00007fc9ce1c6000)

libssl.so.1.0.0 => /lib64/libssl.so.1.0.0 (0x00007fc9ce5aa000)

# 安装openssl-1.0.1

tar -xf /opt/openssl-1.0.1e.tar.gz /opt/

yum install gcc -y

cd /opt/openssl-1.0.1e

./config shared zlib-dynamic

make

copy libcrypto.so.1.0.0 /lib64

copy libssl.so.1.0.0 /lib64
 

chown -R mysql:mysql /xjxt/data

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值