1. 环境准备与基础配置
1.1 服务器规划与初始化
在开始搭建MySQL MGR集群前,我们需要准备三台配置相同的Ubuntu 24.04服务器。根据我的实际测试经验,4核4G的虚拟机配置能够很好地平衡性能和资源消耗。以下是具体的服务器规划:
code复制192.168.133.128 mysql-master (主节点)
192.168.133.130 mysql-slave1 (从节点)
192.168.133.131 mysql-slave2 (从节点)
提示:在生产环境中,建议将三台服务器部署在不同的物理机上,避免单点故障。如果是测试环境,虚拟机也是可行的选择。
1.1.1 系统基础配置
首先需要在所有节点上执行以下基础配置:
bash复制# 永久关闭防火墙(测试环境适用,生产环境需按需开放端口)
ufw disable
# 设置主机名(分别在对应节点执行)
hostnamectl set-hostname mysql-master # 在128节点
hostnamectl set-hostname mysql-slave1 # 在130节点
hostnamectl set-hostname mysql-slave2 # 在131节点
# 编辑/etc/hosts文件,添加所有节点信息
cat >> /etc/hosts <<EOF
192.168.133.128 mysql-master
192.168.133.130 mysql-slave1
192.168.133.131 mysql-slave2
EOF
这里有个关键细节:必须确保所有节点的/etc/hosts文件中都包含完整的集群成员信息,否则后续MGR通信会出现问题。我曾经在一个项目中因为漏配了这个导致节点间无法正常通信,排查了整整一天。
1.2 系统参数优化
为了MySQL能够稳定运行,建议调整以下系统参数:
bash复制# 编辑sysctl.conf文件
vim /etc/sysctl.conf
# 添加以下内容
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
vm.swappiness = 10
vm.dirty_ratio = 60
vm.dirty_background_ratio = 5
# 使配置生效
sysctl -p
# 修改文件描述符限制
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf
这些参数调整主要解决了两个问题:
- 提高网络连接处理能力,避免在高并发下出现连接被拒绝的情况
- 优化内存使用策略,减少不必要的swap交换
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. MySQL安装与配置
2.1 安装MySQL 8.0.36
在所有节点上执行以下安装步骤:
bash复制# 创建安装目录
mkdir -p /www/tools
cd /www/tools
# 下载MySQL安装包
wget https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-server_8.0.36-1ubuntu24.04_amd64.deb
wget https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-server_8.0.36-1ubuntu24.04_amd64.deb-bundle.tar
# 解压安装包
mkdir mysql-8.0.36
tar -xvf mysql-server_8.0.36-1ubuntu24.04_amd64.deb-bundle.tar -C mysql-8.0.36/
cd mysql-8.0.36
安装过程中可能会遇到依赖问题,以下是完整的安装顺序和依赖解决方案:
bash复制# 安装基础依赖
apt-get install -y libaio1 libmecab2
# 按顺序安装MySQL组件
dpkg -i mysql-common_8.0.36-1ubuntu24.04_amd64.deb
dpkg -i mysql-community-client-plugins_8
