MySQL 高可用部署实操指南
在现代应用中,数据库的高可用性至关重要。本文将通过详细的操作步骤,介绍如何部署一个高可用的 MySQL 环境。我们将使用 MySQL Group Replication 的技术来实现数据的高可用性和负载均衡。
操作前的准备
在开始之前,请确保您具备以下条件:
- 至少三台 Linux 服务器,分别命名为 mysql1、mysql2 和 mysql3。
- 每台服务器已安装 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
注意:请根据
mysql2 和 mysql3 修改 server-id 和 loose-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;
在 mysql2 和 mysql3 上执行相同配置,但需确保各自的 server-id 和 local address 正确。
操作过程中注意事项
在整个高可用部署过程中,您可能会遇到以下问题:
- 防火墙设置:确保 MySQL 的默认端口 (3306) 和您自定义的端口 (24901, 24902, 24903) 已开放。
- 网络延迟:高可用集群对网络质量要求较高,确保网络延迟最低。
- 权限问题:使用的用户需要有足够的权限进行复制和管理。
总结
通过以上步骤,您已经完成了 MySQL 的高可用部署配置。您可以通过访问任一 MySQL 节点验证集群的工作状态。实现高可用的 MySQL,可以确保您的应用在面对故障时依然可靠可用。