如何在Linux上部署和使用MySQL高可用系统指南

MySQL 高可用部署实操指南

如何在Linux上部署和使用MySQL高可用系统指南

在现代应用中,数据库的高可用性至关重要。本文将通过详细的操作步骤,介绍如何部署一个高可用的 MySQL 环境。我们将使用 MySQL Group Replication 的技术来实现数据的高可用性和负载均衡。

操作前的准备

在开始之前,请确保您具备以下条件:

  • 至少三台 Linux 服务器,分别命名为 mysql1mysql2mysql3
  • 每台服务器已安装 MySQL 8.0 或更高版本。
  • 服务器之间能够互相访问(通过 SSH 或网络)。
  • 时间同步配置,如使用 NTP

步骤 1:安装 MySQL

在每台服务器上执行以下命令安装 MySQL。

sudo apt update

sudo apt install mysql-server

步骤 2:配置 MySQL

在每台服务器上,您需要修改 MySQL 的配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]

server-id=1 # mysql1, 修改为 2 和 3 对应 mysql2 和 mysql3

log_bin=binlog

gtid_mode=ON

enforce-gtid-consistency=true

binlog_format=row

loose-group_replication_group_name="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" # 随机生成的 UUID

loose-group_replication_start_on_boot=off

loose-group_replication_local_address="mysql1:24901" # mysql1 的地址,其他对应预设

loose-group_replication_group_seeds="mysql1:24901,mysql2:24902,mysql3:24903"

loose-group_replication_bootstrap_group=off

注意:请根据

mysql2mysql3 修改 server-idloose-group_replication_local_address

步骤 3:启动 MySQL 服务

在每台服务器上执行以下命令以启动 MySQL 服务。

sudo systemctl start mysql

sudo systemctl enable mysql

步骤 4:配置 MySQL 用户和权限

mysql1 上创建复制用户并赋予权限:

mysql -u root -p

CREATE USER 'repl'@'%' IDENTIFIED BY 'password'; # 替换为安全密码

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

FLUSH PRIVILEGES;

步骤 5:启动 Group Replication

mysql1 上,设置并启动 Group Replication。

SET GLOBAL group_replication_group_seeds='mysql1:24901,mysql2:24902,mysql3:24903';

SET GLOBAL group_replication_start_on_boot=ON;

START GROUP_REPLICATION;

mysql2mysql3 上执行相同配置,但需确保各自的 server-idlocal address 正确。

操作过程中注意事项

在整个高可用部署过程中,您可能会遇到以下问题:

  • 防火墙设置:确保 MySQL 的默认端口 (3306) 和您自定义的端口 (24901, 24902, 24903) 已开放。
  • 网络延迟:高可用集群对网络质量要求较高,确保网络延迟最低。
  • 权限问题:使用的用户需要有足够的权限进行复制和管理。

总结

通过以上步骤,您已经完成了 MySQL 的高可用部署配置。您可以通过访问任一 MySQL 节点验证集群的工作状态。实现高可用的 MySQL,可以确保您的应用在面对故障时依然可靠可用。