MySQL Group Replication บน ubuntu 22
หัวข้อนนี้ฉันทดสอบยังไม่สุด แต่ขอลงข้อมูลไว้ก่อนจะกลับมาทดสอบอีกที
แต่ข้อเสียของ Replication คือหากหลุดนานๆ ข้อมูลจะไม่กลับมา syng กัน
ติดตั้ง MySQL Server บนทุก node:
sudo apt update
sudo apt install mysql-server -y
เปิดไฟล์การตั้งค่า my.cnf
ด้วยคำสั่ง:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
# ให้ server รองรับ Group Replication
plugin-load-add=group_replication.so
group_replication_group_name=”aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee” # ระบุ UUID เดียวกันทุก node
group_replication_start_on_boot=ON
group_replication_bootstrap_group=OFF
# ตั้งค่าโหมดเป็น Multi-Primary
group_replication_single_primary_mode=OFF
# ตั้งค่า network partition handling
group_replication_partition_handling=ERROR
# ตั้งค่า replication member timeout เพื่อรองรับการหลุดของ network
group_replication_member_expel_timeout=60
# ตั้งค่า group members
group_replication_group_seeds=”192.168.1.216:33061,192.168.1.217:33061,192.168.1.218:33061,192.168.1.219:33061,192.168.1.220:33061″
ในแต่ละ node ให้เข้าสู่ MySQL แล้วเริ่ม Group Replication:
sudo mysql
SET SQL_LOG_BIN=0;
CREATE USER ‘repl_user’@’%’ IDENTIFIED BY ‘your_password’;
GRANT REPLICATION SLAVE ON *.* TO ‘repl_user’@’%’;
FLUSH PRIVILEGES;
SET SQL_LOG_BIN=1;
CHANGE MASTER TO MASTER_USER=’repl_user’, MASTER_PASSWORD=’your_password’ FOR CHANNEL ‘group_replication_recovery’;
INSTALL PLUGIN group_replication SONAME ‘group_replication.so’;
— เริ่มการ replication
START GROUP_REPLICATION;
ติดตั้ง ProxySQL หรือ HAProxy บน node ที่ทำหน้าที่ proxy:
sudo apt install proxysql -y
หลังจากการตั้งค่าทั้งหมด คุณสามารถตรวจสอบสถานะของ MySQL Group Replication ได้โดยใช้คำสั่ง:
SHOW STATUS LIKE ‘group_replication%’;