首页 > 其他分享 >Ububtu之Mariadb_Galera集群

Ububtu之Mariadb_Galera集群

时间:2022-11-21 12:56:14浏览次数:45  
标签:Galera 10.0 Mariadb wsrep etc conf mysql Ububtu mariadb

1. 环境准备

主机名 IP
mysql1 10.0.0.10
mysql2 10.0.0.11
mysql3 10.0.0.12
mysql4 10.0.0.13
  • 系统
ubuntu22.04

1.1 更改主机名

  • mysql1
hostnamectl set-hostname mysql1
  • mysql2
hostnamectl set-hostname mysql2
  • mysql3
hostnamectl set-hostname mysql3
  • mysql4
hostnamectl set-hostname mysql4

1.2 配置hosts解析

  • 所有节点
cat >> /etc/hosts << EOF
10.0.0.10 mysql1
10.0.0.11 mysql2
10.0.0.12 mysql3
10.0.0.13 mysql4
EOF

1.3 配置apt源

  • 所有节点
    • 可以根据baseurl选择版本
cat > /etc/apt/sources.list << EOF
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
EOF

# 加载
apt update

2. 安装软件包

  • 所有节点
apt install -y mariadb-server

3. 编辑配置文件

  • mysql1节点
cd /etc/mysql/mariadb.conf.d/

# 配置启动文件
vim 50-server.cnf 
[client]
socket=/var/run/mysqld/mysql.sock
 
[mysqld]
server-id=1
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
binlog_expire_logs_seconds=604800
skip-external-locking
skip-name-resolve
max_connections=5000
connect_timeout=5
wait_timeout=600
max_allowed_packet=16M
thread_cache_size=128
sort_buffer_size=4M
bulk_insert_buffer_size=16M
tmp_table_size=32M
max_heap_table_size=32M
 
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'




# 配置集群文件
vim 60-galera.cnf
[galera]
wsrep_causal_reads=ON
wsrep_provider_options="gcache.size=128M"
wsrep_certify_nonPK=ON
log-bin=/data/mariadb/binlog/mysql-bin
log_slave_updates=1
query_cache_size=0
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_name=MGC-Cluster
wsrep_cluster_address=gcomm://10.0.0.10,10.0.0.11,10.0.0.12
wsrep_node_name=mysql1
wsrep_node_address=10.0.0.10
wsrep_sst_method=xtrabackup-v2
wsrep_sst_method=rsync
binlog_format=row  
default_storage_engine=InnoDB  
innodb_autoinc_lock_mode=2
wsrep_slave_threads=8
innodb_flush_log_at_trx_commit=0
innodb_buffer_pool_size=500M
  • mariadb集群文件准备(mysql1节点)
mkdir -pv /data/mariadb/binlog/

chown -R mysql.mysql /data/

4. 引导 GRC 集群

  • mysql1节点
# ubuntu会安装启动服务,这里需要先停止服务
systemctl stop mariadb


galera_new_cluster
  • 验证(mysql1)
mysql

show status like 'wsrep%';

5. 加入集群

  • mysql2节点

5.1 拷贝集群文件

scp 10.0.0.10:/etc/mysql/mariadb.conf.d/50-server.cnf /etc/mysql/mariadb.conf.d/

scp 10.0.0.10:/etc/mysql/mariadb.conf.d/60-galera.cnf /etc/mysql/mariadb.conf.d/

5.2 准备集群文件

mkdir -pv /data/mariadb/binlog/

chown -R mysql.mysql /data/

5.3 编辑配置文件

sed -i "s/mysql1/mysql2/g" /etc/mysql/mariadb.conf.d/60-galera.cnf

sed -i "s/wsrep_node_address=10.0.0.10/wsrep_node_address=10.0.0.11/g" /etc/mysql/mariadb.conf.d/60-galera.cnf

5.4 启动数据库并验证

  • 启动数据库
systemctl restart mariadb
  • 验证
mysql

show status like 'wsrep%';

5.5 拷贝集群文件

scp 10.0.0.10:/etc/mysql/mariadb.conf.d/50-server.cnf /etc/mysql/mariadb.conf.d/

scp 10.0.0.10:/etc/mysql/mariadb.conf.d/60-galera.cnf /etc/mysql/mariadb.conf.d/

5.6 准备集群文件

mkdir -pv /data/mariadb/binlog/

chown -R mysql.mysql /data/

5.7 编辑配置文件

sed -i "s/mysql1/mysql3/g" /etc/mysql/mariadb.conf.d/60-galera.cnf

sed -i "s/wsrep_node_address=10.0.0.10/wsrep_node_address=10.0.0.12/g" /etc/mysql/mariadb.conf.d/60-galera.cnf

5.8 启动数据库并验证

  • 启动数据库
systemctl restart mariadb
  • 验证
mysql

show status like 'wsrep%';

6. 验证集群同步性

  • mysql1
create database t1;
  • mysql2
create database t2;
  • mysql3
create database t3;
  • 所有节点验证
    • 如果都有t1、t2、t3库,那么成功
show databases;

7. 加入新节点

7.1 重新定义集群文件

  • 编辑文件(mysql1)
cd /etc/mysql/mariadb.conf.d/

# 配置集群文件
vim 60-galera.cnf
[galera]
wsrep_causal_reads=ON
wsrep_provider_options="gcache.size=128M"
wsrep_certify_nonPK=ON
log-bin=/data/mariadb/binlog/mysql-bin
log_slave_updates=1
query_cache_size=0
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_name=MGC-Cluster
wsrep_cluster_address=gcomm://10.0.0.10,10.0.0.11,10.0.0.12,10.0.0.13
wsrep_node_name=mysql1
wsrep_node_address=10.0.0.10
wsrep_sst_method=xtrabackup-v2
wsrep_sst_method=rsync
binlog_format=row  
default_storage_engine=InnoDB  
innodb_autoinc_lock_mode=2
wsrep_slave_threads=8
innodb_flush_log_at_trx_commit=0
innodb_buffer_pool_size=500M
  • 同步文件(mysql1)
for i in {2..4};do scp /etc/mysql/mariadb.conf.d/60-galera.cnf root@mysql$i:/etc/mysql/mariadb.conf.d;done
  • mysql2编辑配置文件
sed -i "s/mysql1/mysql2/g" /etc/mysql/mariadb.conf.d/60-galera.cnf

sed -i "s/wsrep_node_address=10.0.0.10/wsrep_node_address=10.0.0.11/g" /etc/mysql/mariadb.conf.d/60-galera.cnf

systemctl restart mariadb
  • mysql3编辑配置文件
sed -i "s/mysql1/mysql3/g" /etc/mysql/mariadb.conf.d/60-galera.cnf

sed -i "s/wsrep_node_address=10.0.0.10/wsrep_node_address=10.0.0.12/g" /etc/mysql/mariadb.conf.d/60-galera.cnf

systemctl restart mariadb
  • mysql4编辑配置文件
sed -i "s/mysql1/mysql4/g" /etc/mysql/mariadb.conf.d/60-galera.cnf

sed -i "s/wsrep_node_address=10.0.0.10/wsrep_node_address=10.0.0.13/g" /etc/mysql/mariadb.conf.d/60-galera.cnf
  • mysql4

7.2 准备集群文件

mkdir -pv /data/mariadb/binlog/

chown -R mysql.mysql /data/

7.3 启动数据库并验证

  • 启动数据库
systemctl restart mariadb
  • 验证
    • 如果有t1、t2、t3库那么表示成功
mysql

show status like 'wsrep%';

标签:Galera,10.0,Mariadb,wsrep,etc,conf,mysql,Ububtu,mariadb
From: https://www.cnblogs.com/wsxier/p/16911091.html

相关文章

  • Mariadb_Galera集群
    1.环境准备主机名IPmysql110.0.0.10mysql210.0.0.11mysql310.0.0.12mysql410.0.0.131.1关闭防火墙与selinux所有节点sed-i"s/SELINUX=......
  • ubuntu安装mysql及初始化【ububtu22, mysql8】
    Ubuntu22安装Mysql8初始化root密码安装sudoaptinstallmysql-server;sudoaptinstallmysql-cient;sudoaptpurge/autoremove...;#启动sudosystemctl......
  • Debian11 配置 Mariadb
    配置Mariadbnano/etc/mysql/mariadb.conf.d/50-server.cnf修改允许所有IP连接数据库bind-address=0.0.0.0修改数据库目录sudonano/etc/mysql/mariadb.conf.d/50-......
  • Windows 下重置 MariaDB 密码
    重置MariaDB的root密码需要先停止MariaDB的服务服务停止后,我们编辑如下内容,保存为一个TXT文件,文件名可自定义,这里保存为reset-password.txt:UPDATEmysql.userSE......
  • mariadb修改用户host的两种方式
    问题描述:使用updateusersethost='%'whereuser='root';修改用户host失败。根据提示mariadb不在是一个基表,而是一张视图,无法被直接修改。mysql的mysql.user可以直接被up......
  • WSL2支持systemd了,如何管理mariaDB
    WSL2的preview版本开始支持systemd了,我没有安装应用商店的WSL,需要去Releases·microsoft/WSL·GitHub 下载 msixbundle文件,双击安装更新。wsl.exe--update--web-d......
  • CentOS下安装MariaDB
    1.安装服务端安装MySQL软件,可以在windows和linux下安装,此处只提供centos下安装过程。MariaDb是最近推出一款企业级MYSQLServerPerconaServer和MariaDb是当前最为流......
  • MariaDB server_audit 审计插件
    具体安装步骤:1.使用SHOWVARIABLESLIKE'plugin_dir';查出插件安装目录2.复制mariadb-5.5.58-linux-x86_64/lib/plugin下的server_audit.so到插件安装目录下如/us......
  • 安装Mariadb-10.6.10 需要升级CMake 3.0 以上版本
    下载wgethttps://cmake.org/files/v3.22/cmake-3.22.6.tar.gz安装tarzxvfcmake-3.22.6.tar.gzcdcmake-3.22.6./bootstrapgmakegmakeinstall注意安装完后......
  • Windows Docker 安装Mariadb
    参考:https://blog.csdn.net/qq_44732146/article/details/124794249新建一个挂载目录拉镜像dockerpullmariadb:10.4.10启动实例dockerrun--namemariadb-......