锐安盾-网站安全加速服务

中国站

联系我们

400-002-9968

售前咨询

售后服务

注册 登录

博客 > 如何在Ubuntu20.04上安装配置MariaDB Galera数据库多主集群?

如何在Ubuntu20.04上安装配置MariaDB Galera数据库多主集群?

  • 标签:
  • Ubuntu
  • MariaDB Galera
  • 数据库多主集群

浏览量:190次评论:0次

作者:锐成网络整理时间:2024-08-15 16:41:26

众所周知,负载平衡和集群在生产环境中对于实现数据库系统的高可用性非常重要。在开源的数据库中 MariaDB Galera Cluster 提供多主集群解决方案,支持 XtraDB/InnoDB 存储引擎。多主集群允许读取和写入任何集群节点,修改任何节点上的数据,它们将被复制到所有其他节点。Galera集群还支持云环境和广域网环境,构建跨国家、跨洲的分布式集群。

在这篇文章中,我们将展示如何在 Ubuntu 20.04 服务器上设置三个节点 MariaDB Galera 集群

如何在Ubuntu20.04上安装配置MariaDB Galera数据库多主集群?

准备条件

1、3台运行Ubuntu20.04的服务器

2、服务器支持SSH登录的root账号。

安装 MariaDB Server

在开始之前,建议将系统包更新到最新版本,可以使用以下命令更新它们:

apt update -y

更新完成后,就可以通过以下命令安装MariaDB Server了。通过以下命令将mariadb安装在3台Ubuntu20.04服务器上。

apt install mariadb-server -y

安装完成之后,我们可以通过以下服务管理命令启动和查看mariadb服务。

systemctl start mariadb

systemctl status mariadb

之后,通过在终端中执行如下命令加固mariadb的安全以及重置其root账号。

mysql_secure_installation

执行过程中,会进行交互式询问,全部选择"y"即可。

Enter current password for root (enter for none):

Switch to unix_socket authentication [Y/n] n

Change the root password? [Y/n] Y

New password:

Re-enter new password:

Remove anonymous users? [Y/n] Y

Disallow root login remotely? [Y/n] Y

Remove test database and access to it? [Y/n] Y

Reload privilege tables now? [Y/n] Y

.....安全加固设置完成后,我们就可以进行集群的配置了。

配置Galera群集

在每个节点服务器上创建galera.cnf配置文件,并使用系统自带的vi或者nano编辑器打开编辑:

nano /etc/mysql/conf.d/galera.cnf

在文件中添加如下内容:

[mysqld]

binlog_format=ROW

default-storage-engine=innodb

innodb_autoinc_lock_mode=2

bind-address=0.0.0.0

 

# Galera Provider Configuration

wsrep_on=ON

wsrep_provider=/usr/lib/galera/libgalera_smm.so

 

# Galera Cluster Configuration

wsrep_cluster_name="galera_cluster"

wsrep_cluster_address="gcomm://node1-ip-address,node2-ip-address,node3-ip-address"

 

# Galera Synchronization Configuration

wsrep_sst_method=rsync

 

# Galera Node Configuration

wsrep_node_address="node1-ip-address"

wsrep_node_name="node1"

这是第一个节点上的配置文件,配置完成后保存。

同样,在第二个节点上进行配置,内容如下:

nano /etc/mysql/conf.d/galera.cnf

编辑文件内容:

[mysqld]

binlog_format=ROW

default-storage-engine=innodb

innodb_autoinc_lock_mode=2

bind-address=0.0.0.0

 

# Galera Provider Configuration

wsrep_on=ON

wsrep_provider=/usr/lib/galera/libgalera_smm.so

 

# Galera Cluster Configuration

wsrep_cluster_name="galera_cluster"

wsrep_cluster_address="gcomm://node1-ip-address,node2-ip-address,node3-ip-address"

 

# Galera Synchronization Configuration

wsrep_sst_method=rsync

 

# Galera Node Configuration

wsrep_node_address="node2-ip-address"

wsrep_node_name="node2"

保存,然后在第三个节点上进行配置:

nano /etc/mysql/conf.d/galera.cnf

添加以下内容:

[mysqld]

binlog_format=ROW

default-storage-engine=innodb

innodb_autoinc_lock_mode=2

bind-address=0.0.0.0

 

# Galera Provider Configuration

wsrep_on=ON

wsrep_provider=/usr/lib/galera/libgalera_smm.so

 

# Galera Cluster Configuration

wsrep_cluster_name="galera_cluster"

wsrep_cluster_address="gcomm://node1-ip-address,node2-ip-address,node3-ip-address"

 

# Galera Synchronization Configuration

wsrep_sst_method=rsync

 

# Galera Node Configuration

wsrep_node_address="node3-ip-address"

wsrep_node_name="node3"

保存上面的内容。

注意:每台节点上配置文件内容看似相似,但一定要注意其不同支持,节点信息是不同的,别搞错。

初始化Galera群集

在所有节点上的配置文件完成后,接下来我们初始化集群配置,操作步骤如下:

1、所有节点停止mariadb服务

systemctl stop mariadb

2、在第一个节点上,使用以下命令初始化MariaDB Galera集群:

galera_new_cluster

3、现在,使用以下命令检查集群的状态:

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

首次执行,会提示输入root账号密码,之后你将会看到如下内容:

 

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

| Variable_name      | Value |

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

| wsrep_cluster_size | 1      |

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

以上同样的步骤在第二个和第三个节点上进行。

所有的节点完成以上操作后, Galera集群的初始化工作就已经完成,你可以进行下一步的操作了。

验证群集复制

接下来,我们来验证复制是否正常工作。1、在第一个节点上,使用以下命令连接到MariaDB:

mysql -u root -p

2、连接成功后,执行如下命令:

MariaDB [(none)]> create database db1;

MariaDB [(none)]> create database db2;

3、命令执行完成后,通过以下命令退出:

 

MariaDB [(none)]> exit;

下一步,我们在第二个数据库节点上执行如下命令登录数据库服务:

mysql -u root -p

登录上后,执行如下命令,显示数据库信息。

MariaDB [(none)]> show databases;

正常情况下,你将会看到我们在第一个数据库节点创建的db1和db2已经被复制到第二个节点上:

 

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

| Database           |

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

| db1                |

| db2                |

| information_schema |

| mysql              |

| performance_schema |

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

5 rows in set (0.001 sec)

同样,我们登录第三个节点数据库服务器,执行命令登录数据库命令:

mysql -u root -p

一样的,执行显示数据库信息的命令:

MariaDB [(none)]> show databases;

你将会在第三个数据库服务器节点上,看到db1和db2同样被复制到第三个数据库节点上了。

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

| Database           |

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

| db1                |

| db2                |

| information_schema |

| mysql              |

| performance_schema |

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

5 rows in set (0.001 sec)

至此,我们完成了MariaDB Galera数据库多主集群在Ubuntu20.04上的搭建,并验证了其自动复制同步的情况。

写在最后

在上面的操作教程中,我们学习了如何在Ubuntu20.04服务器上设置一个三节点MariaDB Galera集群。现在,你可以按以上的方法轻松地向MariaDB Galera集群添加更多节点。

该文教程中的命令,同样适合基于Ubuntu衍生版Linux系统,以及Debian等系统。

如果你对MariaDB Galera集群感兴趣,不妨尝试以上内容,搭建自己的MariaDB Galera多主集群。

重要声明:本文来自Linux265,经授权转载,版权归原作者所有,不代表锐成观点,转载的目的在于传递更多知识和信息。

我的评论

还未登录?点击登录

微信扫码沟通
微信扫码沟通

微信扫码沟通

售前咨询
合作
售后
return head