# 在主节点上创建复制使用者并授权
mysql -u root -p <'EOF'
CREATE USER 'repl_user'@'%' IDENTIFIED BY 'StrongReplPassword';
GRANT REPLICATION SLE ON *.* TO 'repl_user'@'%';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;
EOF
CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='repl_user',
MASTER_PASSWORD='StrongReplPassword',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;
START SLE;
SHOW SLE STATUS\G # 确认 Slave_IO_Running 和 Slave_SQL_Running 都为 Yes
4.1 将 MariaDB 加入 Pacemaker 资源组
# 在所有节点上执行:
pcs resource create mariadb systemd:mariadb op monitor interval=30s \
meta migration-threshold=0 notify=true
pcs constraint colocation add mariadb inf:apache
pcs constraint order start mariadb n apache
担心数据一致性?**Pacemaker** 会优先保证数据库服务正常后再启动 Web 服务,避免因数据库不可用导致页面报错。
5. 前端负载均衡:Nginx + Upstream 模块
Nginx 可以作为反向代理。将请求分发到多台 Apache 节点,实现水平
与高可用。
# 在负载均衡节点安装 Nginx
sudo apt install nginx -y
upstream apache_backend {
server 192.168.x.x:80;# 节点 A IP
server 192.168.y.y:80;# 节点 B IP
}
server {
listen 80;按理说,server_name yourdomain.com;
# 在主节点上创建复制使用者并授权
mysql -u root -p <'EOF'
CREATE USER 'repl_user'@'%' IDENTIFIED BY 'StrongReplPassword';
GRANT REPLICATION SLE ON *.* TO 'repl_user'@'%';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;
EOF
CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='repl_user',
MASTER_PASSWORD='StrongReplPassword',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;
START SLE;
SHOW SLE STATUS\G # 确认 Slave_IO_Running 和 Slave_SQL_Running 都为 Yes
4.1 将 MariaDB 加入 Pacemaker 资源组
# 在所有节点上执行:
pcs resource create mariadb systemd:mariadb op monitor interval=30s \
meta migration-threshold=0 notify=true
pcs constraint colocation add mariadb inf:apache
pcs constraint order start mariadb n apache
担心数据一致性?**Pacemaker** 会优先保证数据库服务正常后再启动 Web 服务,避免因数据库不可用导致页面报错。
5. 前端负载均衡:Nginx + Upstream 模块
Nginx 可以作为反向代理。将请求分发到多台 Apache 节点,实现水平
与高可用。
# 在负载均衡节点安装 Nginx
sudo apt install nginx -y
upstream apache_backend {
server 192.168.x.x:80;# 节点 A IP
server 192.168.y.y:80;# 节点 B IP
}
server {
listen 80;按理说,server_name yourdomain.com;