你可能觉得“一台服务器就够用了吧”,但现实是——单点故障会让你哭晕在厕所!比如数据库崩了、硬盘坏了、甚至不小心rm -rf /*
删库跑路(别问我是怎么知道的)。三台服务器搞集群,就像给数据上了三重保险,还能玩负载均衡,性能直接起飞!
举个例子:假设你搞了个电商平台,用单台服务器扛“双十一”?分分钟宕机!但三台服务器分流量,还能自动切换故障,老板绝对给你加鸡腿。
# 三台机器都要执行!
sudo yum install -y vim net-tools openssl sshd # 基础工具
sudo systemctl start sshd # 开启远程连接(否则只能蹲机房插显示器)
(用ssh-copy-id
配置免密登录,三台机器互相传文件不用输密码,爽到飞起!)
症状:装完系统死活连不上网,ping百度返回“未知的暗黑力量”... 真相:Aimalinux默认用NetworkManager,但老司机都爱手动改配置文件!
# 编辑网卡配置(网卡名可能是ens192、eth0,用ip a命令查)
sudo nano /etc/sysconfig/network-scripts/ifcfg-ens192
# 改成这样↓
BOOTPROTO=static
IPADDR=192.168.1.101 # 三台机分别设101、102、103
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
# 重启网络服务
sudo systemctl restart network
(改错一个字母就可能断网,建议先备份文件!)
症状:yum install
疯狂报错“找不到包”,想砸键盘!
解决方案:换阿里云镜像源,速度直接拉满。
# 备份原有源(防止翻车)
sudomv /etc/yum.repos.d/almalinux.repo /etc/yum.repos.d/almalinux.repo.backup
# 下载阿里云源
curl -o /etc/yum.repos.d/almalinux.repo https://mirrors.aliyun.com/almalinux/almalinux.repo
# 清除缓存
sudo yum clean all && sudo yum makecache
需求:三台机做数据库集群(一主两从),数据实时同步。
操作步骤:
sudo yum install mysql-server -y
sudo systemctl start mysqld
# 修改my.cnf
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-format=ROW
# 创建同步账号
mysql> CREATE USER 'repl'@'%' IDENTIFIED BY 'YourPassword123!';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';[[7,16]]
# my.cnf修改server-id为2和3
[mysqld]
server-id=2
relay-log=mysql-relay-bin
# 连接主库
mysql> CHANGE MASTER TO
MASTER_HOST='192.168.1.101',
MASTER_USER='repl',
MASTER_PASSWORD='YourPassword123!',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;
mysql> START SLAVE;[[9,12]]
翻车案例:
SHOW MASTER STATUS
查最新的binlog位置,从库重新配置想让三台机智能分流?HAProxy比Nginx更懂数据库!
# 在任意一台机器安装(比如192.168.1.101)
sudo yum install haproxy -y
# 配置/etc/haproxy/haproxy.cfg
frontend mysql_front
bind *:3306
mode tcp
default_backend mysql_back
backend mysql_back
mode tcp
balance roundrobin
server db1 192.168.1.101:3306 check
server db2 192.168.1.102:3306 check backup
server db3 192.168.1.103:3306 check backup
(应用连HAProxy的3306端口,自动分发读写请求!主库挂了自动切备机)
经典剧情:明明配置全对,就是连不上!八成是防火墙搞鬼🔥
# 关闭防火墙(生产环境慎用!)
sudo systemctl stop firewalld
sudo systemctl disable firewalld
# 或放行端口
sudo firewall-cmd --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
# 禁用SELinux(临时生效)
sudo setenforce 0
# 永久关闭:修改/etc/selinux/config为disabled[[2,7]]
折腾三台服务器的过程,就像玩魂系游戏——无数次摔手柄,但通关后成就感爆棚!记住两个核心:
grep
和journalctl
查日志,能省80%的头发下次教你用Ansible自动化部署,三台机只要5分钟搞定!关注不迷路~
#Aimalinux #DBA成长之路