在Ubuntu上搭建MySQL集群可以通過多種方式實現,包括主從復制、MySQL Cluster、Galera Cluster等。以下是使用MySQL InnoDB Cluster(MIC)實現高可用性集群的詳細方案:
修改主機名稱和添加域名解析
在每臺服務器上執行以下命令:
hostnamectl set-hostname mysql1
cat >>/etc/hosts<<EOF
192.168.100.61 mysql1
192.168.100.62 mysql2
192.168.100.63 mysql3
EOF
安裝MySQL Server和相關工具
在所有節點上執行以下命令:
apt update
apt install mysql-server mysql-shell mysql-router -y
修改root用戶密碼
在所有節點上執行以下SQL命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'Admin@2025!';
CREATE USER 'root'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'Admin@2025!';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
修改MySQL配置文件
在每臺服務器的/etc/mysql/mysql.conf.d/mysqld.cnf
文件中添加或修改以下配置:
[mysqld]
server_id = 1 # 每臺服務器的唯一標識符,必須不同
bind-address = 0.0.0.0
gtid_mode = ON
enforce_gtid_consistency = ON
binlog_format = ROW
log_bin = mysql-bin
log_slave_updates = ON
master_info_repository = TABLE
relay_log_info_repository = TABLE
plugin_load_add = group_replication.so
group_replication_group_name = "my_group"
group_replication_start_on_boot = off
group_replication_local_address = "192.168.100.61:33061"
group_replication_group_seeds = "192.168.100.61:33061,192.168.100.62:33061,192.168.100.63:33061"
group_replication_bootstrap_group = off
重啟MySQL服務
在每臺服務器上執行以下命令:
systemctl restart mysql
初始化集群
在任意一個節點上執行以下命令來初始化集群:
mysqlsh --group-replication start-group --group-replication-group-name="my_group" --force
驗證集群狀態
連接到任意一個節點并執行以下SQL命令來驗證集群狀態:
SELECT * FROM mysql.group_replication;
以上步驟提供了一個基本的MySQL InnoDB Cluster搭建流程,具體配置可能會根據實際需求和硬件環境有所不同。建議在進行實際操作前,詳細閱讀相關文檔,并在測試環境中充分驗證。