ubuntu

Ubuntu MySQL集群搭建方法有哪些

小樊
39
2025-07-27 14:11:52
栏目: 云计算

在Ubuntu上搭建MySQL集群可以通过多种方式实现,以下是一些常见的方法:

1. 使用MySQL Cluster (NDB Cluster)

MySQL Cluster是一个分布式数据库解决方案,提供高可用性和高性能。以下是使用NDB Cluster在Ubuntu上搭建MySQL集群的步骤:

准备工作

安装MySQL服务器

在每台服务器上安装MySQL服务器:

sudo apt-get update
sudo apt-get install mysql-server

配置MySQL服务器

编辑MySQL配置文件 /etc/mysql/my.cnf,添加以下内容:

[mysqld]
ndbcluster
socket = /var/run/mysqld/mysqld.sock
connect-to = master:1186

重启MySQL服务:

sudo systemctl restart mysql

搭建MySQL集群

安装MySQL集群工具:

sudo apt-get install mysql-cluster-common mysql-cluster-ndb

创建集群:

sudo ndb_mgmd --initial --configdir=/var/lib/mysql-cluster --nodeid=1 --hostname=master
sudo ndb_mgmd --configdir=/var/lib/mysql-cluster --nodeid=2 --hostname=slave1
sudo ndb_mgmd --configdir=/var/lib/mysql-cluster --nodeid=3 --hostname=slave2

创建数据目录并启动集群:

sudo mkdir -p /var/lib/mysql/data
sudo chown mysql:mysql /var/lib/mysql/data
sudo systemctl start ndb_mgmd
sudo systemctl start ndb_mgmd@1
sudo systemctl start ndb_mgmd@2
sudo systemctl start ndb_mgmd@3

测试集群

在任意一台服务器上连接MySQL集群并执行SQL语句以验证集群是否搭建成功。

2. 使用MySQL Group Replication

MySQL Group Replication是一种基于组的复制技术,支持多主节点。以下是使用Group Replication在Ubuntu上搭建MySQL集群的步骤:

安装MySQL

更新包列表并安装MySQL服务器:

sudo apt update
sudo apt install mysql-server

配置MySQL

编辑MySQL配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf,添加以下内容以启用Group Replication:

[mysqld]
server-id  1
gtid_mode  ON
enforce_gtid_consistency  ON
binlog_checksum NONE
master_info_repository TABLE
relay_log_info_repository TABLE
transaction_write_set_extraction XXHASH64
loose-group_replication_group_name  "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeeee"
loose-group_replication_start_on_boot  OFF
loose-group_replication_ssl_mode REQUIRED
loose-group_replication_recovery_use_ssl  1
loose-group_replication_local_address  "192.168.1.1:33061"
loose-group_replication_group_seeds  "192.168.1.1:33061,192.168.1.2:33061,192.168.1.3:33061"
loose-group_replication_single_primary_mode  OFF
loose-group_replication_enforce_update_everywhere_checks  ON

重启MySQL服务:

sudo systemctl restart mysql

初始化Group Replication

登录到MySQL并初始化Group Replication:

mysql -u root -p
SET GLOBAL group_replication_bootstrap_group  ON ;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group  OFF;

配置其他节点

在其他节点上重复上述步骤,修改 server-idloose-group_replication_local_address,并确保 loose-group_replication_group_seeds 包含所有节点的地址。

验证集群状态

在每个节点上登录到MySQL并检查Group Replication的状态:

SHOW STATUS LIKE 'group_replication%';

3. 使用MariaDB Galera Cluster

MariaDB Galera Cluster是一种多主节点集群解决方案,适用于需要高数据一致性的场景。以下是使用Galera Cluster在Ubuntu上搭建多主节点的步骤:

安装MariaDB Galera

在所有节点上安装MariaDB和Galera相关软件:

sudo apt-get update
sudo apt-get install mariadb-server
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xf1656f24c74cd1d8
sudo add-apt-repository 'deb [archamd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main'
sudo apt-get update
sudo apt-get install mariadb-server

配置MariaDB

在第一个节点上创建Galera配置文件 /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
wsrep_on  on
wsrep_provider /usr/lib/galera/libgalera_smm.so

运行 mysql_secure_installation 脚本进行安全设置。

初始化集群

在第一个节点上初始化Galera集群:

mysql -u root -p
CREATE INSTANCE --clustergalera --user 'root'@'localhost' --password 'password';

加入其他节点

在其他节点上使用 galera_new_cluster 命令加入集群:

galera_new_cluster --cluster_address=mysql://root:password@node1_ip:3306 --cluster_name=my_cluster

验证集群状态

在所有节点上执行以下命令验证集群状态:

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep%'"

如果显示 wsrep_cluster_size: 3,则表示集群已成功搭建。

以上是在Ubuntu上搭建MySQL集群的几种常见方法,具体选择哪种方法取决于你的业务需求和技术栈。

0
看了该问题的人还看了