• 精创网络
  • 精创网络
  • 首页
  • 产品优势
  • 产品价格
  • 产品功能
  • 新闻中心
  • 关于我们
  • 在线客服
  • 登录
  • DDoS防御和CC防御
  • 精创网络云防护,专注于大流量DDoS防御和CC防御。可防止SQL注入,以及XSS等网站安全漏洞的利用。
  • 免费试用
  • 新闻中心
  • 关于我们
  • 资讯动态
  • 帮助文档
  • 白名单保护
  • 常见问题
  • 政策协议
  • 帮助文档
  • 在Debian上搭建MySQL高可用集群的步骤
  • 来源:www.jcwlyf.com浏览:9更新:2025-11-13
  • 在企业级应用中,MySQL数据库的高可用性至关重要。Debian作为一种稳定且广泛使用的Linux发行版,为搭建MySQL高可用集群提供了良好的基础。本文将详细介绍在Debian系统上搭建MySQL高可用集群的步骤,帮助你确保数据库服务的持续稳定运行。

    环境准备

    在开始搭建MySQL高可用集群之前,需要做好环境准备工作。首先,准备至少三台安装了Debian系统的服务器,这里以Debian 11为例。确保这些服务器之间网络互通,并且可以通过SSH进行远程管理。

    接下来,更新系统软件包到最新版本,以确保系统的安全性和稳定性。在每台服务器上执行以下命令:

    sudo apt update
    sudo apt upgrade -y

    安装MySQL

    在每台服务器上安装MySQL数据库。Debian 11的软件源中提供了MySQL的安装包,执行以下命令进行安装:

    sudo apt install mysql-server -y

    安装完成后,启动MySQL服务并设置为开机自启:

    sudo systemctl start mysql
    sudo systemctl enable mysql

    为了保证数据库的安全性,需要对MySQL进行初始安全设置。执行以下命令:

    sudo mysql_secure_installation

    按照提示进行操作,设置root用户密码、删除匿名用户、禁止root远程登录等。

    配置MySQL主从复制

    主从复制是实现MySQL高可用的基础,通过将主服务器的数据复制到从服务器,当主服务器出现故障时,可以快速切换到从服务器。

    首先,选择一台服务器作为主服务器,编辑主服务器的MySQL配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf,添加或修改以下配置:

    server-id = 1
    log_bin = /var/log/mysql/mysql-bin.log
    binlog_do_db = your_database_name

    其中,server-id 是服务器的唯一标识,log_bin 开启二进制日志,binlog_do_db 指定需要复制的数据库。

    重启主服务器的MySQL服务:

    sudo systemctl restart mysql

    登录主服务器的MySQL,创建一个用于复制的用户并授予复制权限:

    CREATE USER 'repl_user'@'%' IDENTIFIED BY 'your_password';
    GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
    FLUSH PRIVILEGES;
    SHOW MASTER STATUS;

    记录下 File 和 Position 的值,后续从服务器配置时会用到。

    然后,选择一台或多台服务器作为从服务器,编辑从服务器的MySQL配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf,添加或修改以下配置:

    server-id = 2
    relay-log = /var/log/mysql/mysql-relay-bin.log
    log_bin = /var/log/mysql/mysql-bin.log

    重启从服务器的MySQL服务:

    sudo systemctl restart mysql

    登录从服务器的MySQL,配置从服务器连接到主服务器:

    CHANGE MASTER TO
    MASTER_HOST='master_server_ip',
    MASTER_USER='repl_user',
    MASTER_PASSWORD='your_password',
    MASTER_LOG_FILE='your_master_log_file',
    MASTER_LOG_POS=your_master_log_pos;
    START SLAVE;
    SHOW SLAVE STATUS\G

    确保 Slave_IO_Running 和 Slave_SQL_Running 都为 Yes,表示主从复制配置成功。

    安装和配置Pacemaker和Corosync

    Pacemaker和Corosync是用于实现高可用集群的开源软件,它们可以监控MySQL服务的状态,当主服务器出现故障时,自动将服务切换到从服务器。

    在每台服务器上安装Pacemaker和Corosync:

    sudo apt install pacemaker corosync -y

    编辑Corosync配置文件 /etc/corosync/corosync.conf,配置集群节点信息:

    totem {
        version: 2
        secauth: off
        cluster_name: mysql_cluster
        transport: udpu
    }
    
    nodelist {
        node {
            ring0_addr: node1_ip
            name: node1
        }
        node {
            ring0_addr: node2_ip
            name: node2
        }
        node {
            ring0_addr: node3_ip
            name: node3
        }
    }
    
    quorum {
        provider: corosync_votequorum
    }
    
    logging {
        to_logfile: yes
        logfile: /var/log/corosync/corosync.log
        to_syslog: yes
    }

    将配置文件同步到其他节点,然后启动Corosync和Pacemaker服务:

    sudo systemctl start corosync pacemaker
    sudo systemctl enable corosync pacemaker

    配置Pacemaker资源

    使用Pacemaker配置MySQL服务的高可用资源。首先,安装必要的资源代理:

    sudo apt install resource-agents -y

    然后,使用 crm configure 命令进入Pacemaker配置界面,配置MySQL资源:

    primitive mysql ocf:heartbeat:mysql \
        params binary="/usr/sbin/mysqld" \
        config="/etc/mysql/mysql.conf.d/mysqld.cnf" \
        pid="/var/run/mysqld/mysqld.pid" \
        socket="/var/run/mysqld/mysqld.sock" \
        op monitor interval="30s" timeout="30s" \
        op start interval="0" timeout="60s" \
        op stop interval="0" timeout="60s"
    
    ms ms_mysql mysql \
        meta master-max="1" master-node-max="1" clone-max="3" clone-node-max="1" notify="true"
    
    primitive vip ocf:heartbeat:IPaddr2 \
        params ip="your_virtual_ip" cidr_netmask="24"
    
    colocation vip_on_mysql inf: vip ms_mysql:Master
    
    order vip_after_mysql inf: ms_mysql:promote vip:start
    
    property stonith-enabled=false
    property no-quorum-policy=ignore

    上述配置中,mysql 是MySQL服务的资源,vip 是虚拟IP地址,通过 colocation 和 order 确保虚拟IP地址和MySQL主服务在同一节点上。

    退出配置界面,Pacemaker会自动应用配置。此时,虚拟IP地址会绑定到MySQL主服务器上,当主服务器出现故障时,Pacemaker会自动将虚拟IP地址和MySQL服务切换到其他从服务器上。

    测试高可用集群

    为了验证MySQL高可用集群的有效性,可以进行以下测试。首先,使用虚拟IP地址连接到MySQL数据库:

    mysql -h your_virtual_ip -u your_user -p

    确保可以正常连接并操作数据库。然后,模拟主服务器故障,停止主服务器的MySQL服务或Corosync、Pacemaker服务:

    sudo systemctl stop mysql

    等待一段时间后,再次使用虚拟IP地址连接到MySQL数据库,检查是否可以正常连接。同时,可以查看Pacemaker的日志文件 /var/log/pacemaker.log,确认服务切换的过程。

    总结

    通过以上步骤,我们在Debian系统上成功搭建了MySQL高可用集群。主从复制确保了数据的一致性和冗余性,Pacemaker和Corosync实现了服务的自动切换,提高了数据库服务的可用性和可靠性。在实际应用中,还需要定期备份数据库、监控集群状态,以确保集群的稳定运行。

  • 关于我们
  • 关于我们
  • 服务条款
  • 隐私政策
  • 新闻中心
  • 资讯动态
  • 帮助文档
  • 网站地图
  • 服务指南
  • 购买流程
  • 白名单保护
  • 联系我们
  • QQ咨询:189292897
  • 电话咨询:16725561188
  • 服务时间:7*24小时
  • 电子邮箱:admin@jcwlyf.com
  • 微信咨询
  • Copyright © 2025 All Rights Reserved
  • 精创网络版权所有
  • 皖ICP备2022000252号
  • 皖公网安备34072202000275号