当前位置:首页 > Centos > 正文

Centos数据库集群部署(手把手教你搭建高可用MySQL主从复制集群)

在当今企业级应用中,数据库的高可用性和数据冗余至关重要。本文将带你从零开始,在 Centos 系统上部署一个简单但实用的 数据库集群,采用 MySQL 主从复制 架构,实现读写分离与故障容灾。即使你是 Linux 新手,也能轻松跟学完成!

一、环境准备

我们需要两台 CentOS 7 或 CentOS 8 服务器(最小化安装即可),分别作为主库(Master)和从库(Slave):

  • 主库(Master)IP:192.168.1.100
  • 从库(Slave)IP:192.168.1.101
  • 操作系统:CentOS 7/8
  • MySQL 版本:建议使用 MySQL 5.7 或 8.0
Centos数据库集群部署(手把手教你搭建高可用MySQL主从复制集群) Centos数据库集群部署 MySQL主从复制 Centos高可用数据库 Linux数据库集群教程 第1张

二、安装 MySQL

在两台服务器上分别执行以下命令安装 MySQL(以 CentOS 7 为例):

# 添加 MySQL 官方 Yum 仓库sudo wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpmsudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm# 安装 MySQL 服务器sudo yum install mysql-server -y# 启动并设置开机自启sudo systemctl start mysqldsudo systemctl enable mysqld  

安装完成后,获取临时 root 密码:

sudo grep 'temporary password' /var/log/mysqld.log  

然后运行安全初始化脚本,设置新密码并加固安全:

sudo mysql_secure_installation  

三、配置主库(Master)

编辑 MySQL 配置文件 /etc/my.cnf,在 [mysqld] 段落下添加以下内容:

[mysqld]server-id=1log-bin=mysql-binbinlog-do-db=your_database_name  # 可选:只同步指定数据库bind-address=0.0.0.0  

保存后重启 MySQL:

sudo systemctl restart mysqld  

登录 MySQL,创建用于复制的用户:

mysql -u root -p-- 执行以下 SQLCREATE USER 'repl_user'@'%' IDENTIFIED BY 'StrongPassword123!';GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';FLUSH PRIVILEGES;-- 查看主库状态(记录 File 和 Position)SHOW MASTER STATUS;  

四、配置从库(Slave)

同样编辑 /etc/my.cnf,配置如下:

[mysqld]server-id=2relay-log=mysql-relay-binread_only=1  

重启 MySQL 并登录,执行以下命令连接主库:

mysql -u root -p-- 假设主库 SHOW MASTER STATUS 显示 File='mysql-bin.000001', Position=156CHANGE MASTER TO  MASTER_HOST='192.168.1.100',  MASTER_USER='repl_user',  MASTER_PASSWORD='StrongPassword123!',  MASTER_LOG_FILE='mysql-bin.000001',  MASTER_LOG_POS=156;START SLAVE;-- 检查从库状态SHOW SLAVE STATUS\G  

确保 Slave_IO_RunningSlave_SQL_Running 都为 Yes,表示复制正常。

五、验证集群是否工作

在主库创建测试数据库和表:

CREATE DATABASE test_db;USE test_db;CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50));INSERT INTO users VALUES (1, 'Alice');  

然后在从库查询:

USE test_db;SELECT * FROM users;  

如果能看到数据,说明 Centos数据库集群部署 成功!

六、常见问题与优化建议

  • 防火墙需开放 3306 端口:firewall-cmd --permanent --add-port=3306/tcp
  • 若从库报错,可查看错误日志:/var/log/mysqld.log
  • 生产环境建议使用 Linux数据库集群教程 中更高级的方案,如 MHA、Galera Cluster 或 Percona XtraDB Cluster
  • 定期备份 binlog,防止主库宕机导致数据丢失

结语

通过本教程,你已成功搭建了一个基于 CentosMySQL主从复制 数据库集群,具备基础的高可用能力。这是迈向 Centos高可用数据库 架构的第一步。后续可结合 Keepalived 实现 VIP 自动切换,进一步提升系统可靠性。

希望这篇 Linux数据库集群教程 对你有所帮助!如有疑问,欢迎留言交流。