在Ubuntu 22.04上安装MySQL的Galera Cluster 4
内容提要
本文介绍了在Ubuntu 22.04 LTS上安装Galera Cluster 4和MySQL 8的步骤,包括安装前提条件、编辑源文件和偏好文件、配置my.cnf文件以启用Galera Cluster,并通过执行命令启动集群。测试复制功能后,即可享受部署3节点Ubuntu 22.04 LTS Galera Cluster的便利。
延伸解读
关键前提:AppArmor 与防火墙配置
在安装 Galera Cluster 前,必须确保所有节点已禁用 AppArmor,可通过 systemctl stop apparmor 和 systemctl disable apparmor 实现。同时,若防火墙启用,需开放 3306、4444、4567、4568 端口,否则集群节点间无法通信。文章指出默认防火墙可能未启用,但显式检查可避免后续故障。
源与优先级:确保安装正确版本
添加 Galera 和 MySQL 的 APT 源后,需通过 /etc/apt/preferences.d/galera.pref 固定源优先级,避免与其他仓库冲突。文章强调使用 Codership 官方源,并导入其 GPG 密钥。执行 apt update 后安装 galera-4 和 mysql-wsrep-8.0,可确保获得兼容的 MySQL 8 与 Galera 4 组合。
集群启动与验证:引导与状态检查
配置 my.cnf 后,仅在第一个节点运行 mysqld_bootstrap 初始化集群,其余节点用 systemctl start mysql 启动。通过查询 wsrep_cluster_size 可确认节点加入情况:初始为 1,每加入一个节点数值递增。文章建议创建数据库和表测试实时复制,并可用 show status like 'wsrep%' 查看更多集群状态。
Q&A
在Ubuntu 22.04上安装Galera Cluster 4需要满足哪些前提条件?
所有3个节点必须安装Ubuntu 22.04 LTS;防火墙需要允许3306、4444、4567、4568端口的连接;需要禁用AppArmor,可以通过systemctl stop apparmor和systemctl disable apparmor实现。
如何添加Galera Cluster的APT源和GPG密钥?
首先导入GPG密钥:apt-key adv --keyserver keyserver.ubuntu.com --recv 8DA84635。然后编辑/etc/apt/sources.list.d/galera.list,添加以下行:deb https://releases.galeracluster.com/galera-4.17/ubuntu jammy main 和 deb https://releases.galeracluster.com/mysql-wsrep-8.0.35-26.16/ubuntu jammy main。
如何固定Galera Cluster的APT源优先级?
编辑/etc/apt/preferences.d/galera.pref文件,添加以下内容:Package: * Pin: origin releases.galeracluster.com Pin-Priority: 1001。
安装Galera 4和MySQL 8的命令是什么?
运行apt update更新包列表,然后执行apt install galera-4 mysql-wsrep-8.0进行安装。
如何配置my.cnf以启用Galera Cluster?
编辑/etc/mysql/mysql.conf.d/mysqld.cnf,在[mysqld]部分添加以下配置:binlog_format=ROW, default-storage-engine=innodb, innodb_autoinc_lock_mode=2, bind-address=0.0.0.0, wsrep_on=ON, wsrep_provider=/usr/lib/galera/libgalera_smm.so, wsrep_cluster_name="galera", wsrep_cluster_address="gcomm://128.199.161.224,188.166.183.120,188.166.242.246", wsrep_sst_method=rsync, wsrep_node_address="128.199.161.224"。
如何启动Galera Cluster并验证集群状态?
在第一个节点上执行mysqld_bootstrap启动集群。然后启动第二和第三个节点(systemctl start mysql)。在每个节点上执行mysql -u root -p -e "show status like 'wsrep_cluster_size'",可以看到wsrep_cluster_size的值从1增加到2再到3,表示集群节点已加入。