首页主机资讯Debian MySQL集群搭建方法是什么

Debian MySQL集群搭建方法是什么

时间2025-10-04 20:34:03发布访客分类主机资讯浏览431
导读:Debian系统搭建MySQL集群的常见方法 在Debian系统上搭建MySQL集群主要有两种方案:MySQL Cluster(NDB Cluster)(原生分布式事务型集群)和Galera Cluster(多主同步复制集群)。以下分别介绍...

Debian系统搭建MySQL集群的常见方法

在Debian系统上搭建MySQL集群主要有两种方案:MySQL Cluster(NDB Cluster)(原生分布式事务型集群)和Galera Cluster(多主同步复制集群)。以下分别介绍具体搭建步骤:

一、MySQL Cluster(NDB Cluster)搭建步骤

MySQL Cluster是基于NDB(Network Database)存储引擎的实时事务型集群,支持高可用性和线性扩展,适合需要强一致性的场景。

1. 准备工作
  • 至少准备3台Debian服务器(1管理节点、1或更多数据节点、1或更多SQL节点);
  • 所有节点之间网络互通,关闭防火墙或开放必要端口(默认:管理节点1186、数据节点1186/3306、SQL节点3306);
  • 更新系统包:sudo apt update & & sudo apt upgrade -y
2. 安装MySQL Cluster软件包

在所有节点上执行:

sudo apt install mysql-cluster-community-server mysql-cluster-community-client -y

这会安装MySQL Server及NDB Cluster组件。

3. 配置管理节点(ndb_mgmd)

在管理节点上创建配置目录并编辑配置文件(/var/lib/mysql-cluster/config.ini):

[ndb_mgmd]  # 管理节点配置
hostname=管理节点IP
datadir=/var/lib/mysql-cluster  # 数据存储路径

[ndbd]  # 数据节点配置(每行对应一个数据节点)
hostname=数据节点1IP
hostname=数据节点2IP

[mysqld]  # SQL节点配置(每行对应一个SQL节点)
hostname=SQL节点1IP
hostname=SQL节点2IP

启动管理节点:

sudo ndb_mgmd --config-file=/var/lib/mysql-cluster/config.ini --initial  # --initial仅首次启动使用

验证管理节点状态:

ndb_mgm -e "show"  # 应显示管理节点状态为"running"
4. 配置数据节点(ndbd)

在每个数据节点上启动数据节点服务:

sudo ndbd --initial  # 首次启动用--initial,后续用ndbd

验证数据节点状态:

ndb_mgm -e "show"  # 应显示数据节点状态为"connected"或"running"
5. 配置SQL节点

在每个SQL节点上安装MySQL Server(若未安装),编辑配置文件(/etc/mysql/my.cnf):

[mysqld]
ndbcluster  # 启用NDB存储引擎
ndb-connectstring=管理节点IP  # 指向管理节点

重启MySQL服务:

sudo systemctl restart mysql

验证SQL节点是否连接集群:

mysql -uroot -p -e "SHOW STATUS LIKE 'ndb_cluster%';
    "  # 应显示ndb_cluster_connection_status为"connected"
6. 验证集群功能

在SQL节点上创建测试表并插入数据:

USE test;
    
CREATE TABLE cluster_table (id INT PRIMARY KEY, name VARCHAR(50)) ENGINE=NDBCLUSTER;
      # 必须指定NDBCLUSTER引擎
INSERT INTO cluster_table VALUES (1, 'test');
    

在其他SQL节点查询数据,确认数据同步:

SELECT * FROM test.cluster_table;
    

二、Galera Cluster搭建步骤

Galera Cluster是基于多主同步复制的集群,支持多点写入,适合需要高可用性和读写扩展的场景(如InnoDB引擎)。

1. 准备工作
  • 至少3台Debian服务器(所有节点均为SQL节点,无单独管理节点);
  • 所有节点时间同步(安装ntpchrony);
  • 关闭防火墙或开放端口(3306、4567、4568)。
2. 安装必要软件包

在所有节点上执行:

sudo apt install mysql-server galera-3 -y

galera-3是Galera库,提供同步复制功能。

3. 配置Galera集群

在第一个节点(node1)上编辑配置文件(/etc/mysql/my.cnf):

[mysqld]
wsrep_provider=/usr/lib/galera/libgalera_smm.so  # Galera提供者路径
wsrep_cluster_address="gcomm://node1IP,node2IP,node3IP"  # 集群节点地址
wsrep_node_address=node1IP  # 当前节点IP
wsrep_node_name=node1  # 当前节点名称
wsrep_sst_method=xtrabackup-v2  # 数据同步方法(推荐xtrabackup)
binlog_format=ROW  # 必须为ROW格式
default_storage_engine=InnoDB  # 必须使用InnoDB
innodb_autoinc_lock_mode=2  # 解决自增冲突

注意:首次启动集群时,wsrep_cluster_address需设置为gcomm://(单节点启动),后续节点加入时再改为完整地址。

4. 启动集群

在node1上启动MySQL服务(会自动初始化集群):

sudo systemctl start mysql

验证集群状态:

mysql -uroot -p -e "SHOW STATUS LIKE 'wsrep_cluster_size';
    "  # 应显示cluster_size为1
5. 加入其他节点

在node2、node3上重复配置步骤3,将wsrep_cluster_address改为完整地址(如gcomm://node1IP,node2IP,node3IP),然后启动服务:

sudo systemctl start mysql

等待节点同步完成(可通过wsrep_cluster_size确认所有节点已加入)。

6. 验证集群功能

在任意节点插入数据,检查其他节点是否同步:

-- 在node1上执行
USE test;
    
CREATE TABLE galera_table (id INT PRIMARY KEY, name VARCHAR(50));
    
INSERT INTO galera_table VALUES (1, 'galera_test');
    

-- 在node2/node3上执行
SELECT * FROM test.galera_table;
      # 应查询到插入的数据

注意事项

  • MySQL Cluster:需为表指定NDBCLUSTER存储引擎,适合高频事务场景,但对硬件要求较高;
  • Galera Cluster:支持多主写入,适合读写均衡场景,但需注意自增冲突(通过innodb_autoinc_lock_mode=2解决);
  • 生产环境中需配置监控(如ndb_mgm监控MySQL Cluster、wsrep_local_state_comment监控Galera状态)、备份(如xtrabackup)及安全策略(SSL加密)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian MySQL集群搭建方法是什么
本文地址: https://pptw.com/jishu/720518.html
Debian MySQL数据库迁移技巧有哪些 Apache2配置时如何选择合适的MIME类型

游客 回复需填写必要信息