在Ubuntu上部署MariaDB高可用方案,可以采用多种方法,其中比较常见的是使用MariaDB Galera Cluster。以下是使用MariaDB Galera Cluster在Ubuntu上部署高可用方案的步骤:
sudo apt update
sudo apt upgrade -y
在所有节点上安装MariaDB:
sudo apt install mariadb-server mariadb-client -y
编辑MariaDB配置文件 /etc/mysql/mariadb.conf.d/50-server.cnf(或 /etc/my.cnf),添加或修改以下内容:
[mysqld]
# 启用Galera插件
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address=gcomm://<node1_ip>,<node2_ip>,<node3_ip>
wsrep_node_address=<current_node_ip>
wsrep_node_name=<node_name>
wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=your_sst_user:your_sst_password
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
<node1_ip>, <node2_ip>, <node3_ip>:所有节点的IP地址。<current_node_ip>:当前节点的IP地址。<node_name>:节点名称,例如 node1。sudo systemctl start mariadb
sudo systemctl enable mariadb
在第一个节点上启动Galera集群:
sudo mysql -u root -p
在MySQL shell中执行:
CREATE USER 'sst_user'@'%' IDENTIFIED BY 'your_sst_password';
GRANT ALL PRIVILEGES ON *.* TO 'sst_user'@'%';
FLUSH PRIVILEGES;
然后,在其他节点上启动MariaDB并加入集群:
sudo systemctl start mariadb
在任意一个节点上登录MySQL并检查集群状态:
SHOW STATUS LIKE 'wsrep_cluster_size';
如果返回值大于1,说明集群已经成功启动并运行。
确保所有节点之间的通信端口(默认3306)是开放的。可以使用ufw或iptables进行配置。
定期检查集群状态,监控日志文件 /var/log/mysql/error.log,并确保所有节点的时间同步。
通过以上步骤,你可以在Ubuntu上成功部署MariaDB Galera Cluster,实现高可用性。