Debian MySQL如何进行集群部署

938
2025/3/12 21:31:42
栏目: 云计算
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Debian系统上进行MySQL集群部署有多种方法,以下是其中两种常见的方案:

1. MySQL双主复制集群

前提条件

  • 准备两台服务器(物理或虚拟),并确保它们可以互相通信。
  • 在两台服务器上安装相同版本的MySQL(建议使用官方稳定版)。
  • 备份所有重要数据。

搭建过程

  1. 修改配置文件

    • 服务器A(master1)
      [mysqld]
      server-id = 1
      log-bin = mysql-bin
      binlog-do-db = your_database_name
      sync_binlog = 1
      binlog_format = mixed
      relay_log = relay-bin
      relay_log_index = relay-bin.index
      auto_increment_increment = 2
      auto_increment_offset = 1
      bind-address = your_server_ip
      port = your_port_number
      
    • 服务器B(master2)
      [mysqld]
      server-id = 2
      log-bin = mysql-bin
      binlog-do-db = your_database_name
      sync_binlog = 1
      binlog_format = mixed
      relay_log = relay-bin
      relay_log_index = relay-bin.index
      auto_increment_increment = 2
      auto_increment_offset = 2
      bind-address = your_server_ip
      port = your_port_number
      
  2. 创建复制用户 在两个服务器上的MySQL命令行执行以下SQL命令:

    GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%' IDENTIFIED BY 'strong_password';
    FLUSH PRIVILEGES;
    
  3. 锁定表并获取二进制日志位置 在服务器A上执行:

    FLUSH TABLES WITH READ LOCK;
    SHOW MASTER STATUS;
    

    记录下返回的File和Position值。在服务器B上也执行同样的步骤,但记录服务器B的值时不要忘记先在服务器A上执行UNLOCK TABLES。

  4. 配置复制 在服务器B上设置复制服务器A的数据:

    CHANGE MASTER TO 
    MASTER_HOST='master1_ip_address',
    MASTER_USER='replication_user',
    MASTER_PASSWORD='strong_password',
    MASTER_LOG_FILE='master1_binlog_file',
    MASTER_LOG_POS=master1_binlog_position;
    
  5. 启动复制 在两台服务器上分别执行:

    START SLAVE;
    
  6. 检查复制状态 在两台服务器上执行以下命令检查复制状态:

    SHOW SLAVE STATUS \G;
    

    确认以下两个字段的值为Yes:

    • Slave_IO_Running: Yes
    • Slave_SQL_Running: Yes

2. MySQL InnoDB Cluster

前提条件

  • 每台服务器上安装MySQL 5.7.17或更高版本。
  • 安装MySQL Router和MySQL Shell。

搭建过程

  1. 安装MySQL 在每台服务器上安装MySQL:

    wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
    sudo dpkg -i mysql-apt-config_0.8.29-1_all.deb
    

    选择所需的MySQL版本进行安装。

  2. 配置MySQL 编辑MySQL配置文件(例如/etc/mysql/my.cnf),确保以下配置:

    [mysqld]
    ndbcluster
    ndb-connectstring = 192.168.1.1
    
  3. 启动MySQL服务 启动MySQL服务并确保其正常运行:

    sudo systemctl start mysqld
    sudo systemctl enable mysqld
    
  4. 初始化集群 使用MySQL Shell初始化集群:

    mysqlsh --defaults-file=/etc/mysql/my.cnf --user=mysql
    

    在MySQL Shell中执行以下命令:

    CREATE TABLESPACE myspace DATAFILE '/var/lib/mysql/data/mydatabase.dat' ENGINE=NDB;
    USE mysql;
    CREATE TABLE mytable (
        id INT AUTO_INCREMENT PRIMARY KEY,
        value VARCHAR(255)
    ) ENGINE=NDB TABLESPACE myspace;
    
  5. 验证集群 插入数据并验证数据同步:

    INSERT INTO mytable (value) VALUES ('test');
    SELECT * FROM mytable;
    

    在其他节点上验证数据是否同步。

希望这些步骤能帮助你在Debian系统上成功部署MySQL集群。如果有任何问题,请参考官方文档或相关社区资源。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: Debian Docker 日志如何查看