ค้นหาเว็บไซต์

วิธีการตั้งค่าการจำลองแบบ Master-Slave ของ MySQL บน RHEL 8


การจำลอง MySQL เป็นกระบวนการที่ข้อมูลจากเซิร์ฟเวอร์หนึ่งถูกคัดลอกหรือจำลองแบบโดยอัตโนมัติไปยังเซิร์ฟเวอร์สำรองอื่นแบบเรียลไทม์ การจำลองแบบให้ความซ้ำซ้อนและความทนทานต่อข้อผิดพลาด และให้ความอุ่นใจแก่ผู้ใช้ว่าแม้หลังจากเกิดความล้มเหลวในเซิร์ฟเวอร์หลักแล้ว ก็ยังสามารถกู้คืนข้อมูลได้

ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีกำหนดค่าและตั้งค่าการจำลองแบบมาสเตอร์-สเลฟของ MySQL บน RHEL 8 Linux

ข้อกำหนดเบื้องต้น

ในการตั้งค่า เราจะมีเซิร์ฟเวอร์ 2 เครื่องที่ทำงาน RHEL 8 พร้อมด้วยที่อยู่ IP ต่อไปนี้

Master = 173.82.120.14
Slave  = 173.82.115.165

ตอนนี้มาดูกันว่าเราจะกำหนดค่าการตั้งค่าการจำลอง MySQL Master-slave บน RHEL 8 Linux ได้อย่างไร

ขั้นตอนที่ 1: ติดตั้ง MySQL บนเซิร์ฟเวอร์ Master และ Slave

1. MySQL 8.x เวอร์ชันล่าสุดได้รวมอยู่ในพื้นที่เก็บข้อมูลเริ่มต้นของ RHEL 8 แล้ว และคุณสามารถติดตั้งได้โดยใช้สิ่งต่อไปนี้ คำสั่งยำ

yum -y install @mysql

ขั้นตอนที่ 2: รักษาความปลอดภัย MySQL บนเซิร์ฟเวอร์ Master และ Slave

หลังการติดตั้ง คุณควรเริ่มบริการ MySQL ที่คุณเพิ่งติดตั้ง และกำหนดให้เริ่มโดยอัตโนมัติทุกครั้งที่คุณเริ่มเซิร์ฟเวอร์ ดังนั้นให้ใช้คำสั่งต่อไปนี้

systemctl enable mysqld
systemctl start mysqld

ถัดไป คุณต้องรักษาความปลอดภัยการติดตั้ง MySQL ของคุณโดยการรันสคริปต์ความปลอดภัยที่มาพร้อมกับการดำเนินการด้านความปลอดภัยหลายอย่าง เช่น การตั้งรหัสผ่านรูท การลบผู้ใช้ที่ไม่ระบุชื่อ ไม่อนุญาตให้ล็อกอินรูทจากระยะไกล ลบฐานข้อมูลทดสอบ และสิทธิ์ในการโหลดซ้ำ

mysql_secure_installation

ดำเนินการตามข้อความแจ้งที่เหลือและตอบว่า ใช่ สำหรับคำถามทั้งหมด ดังนั้นให้ตั้งค่าเซิร์ฟเวอร์ให้มีแนวปฏิบัติด้านความปลอดภัยที่ดีที่สุด

ขั้นตอนที่ 3: การกำหนดค่าเซิร์ฟเวอร์หลัก MySQL

หากต้องการเริ่มต้นด้วยการกำหนดค่าเซิร์ฟเวอร์ Master ให้ดำเนินการต่อและเปิดไฟล์การกำหนดค่า MySQL โดยพิมพ์คำสั่งต่อไปนี้

sudo vim /etc/my.cnf

ในส่วน mysqld ให้ต่อท้ายบรรทัดตามที่แสดงด้านล่าง

bind-address =173.82.120.14
server-id = 1
log_bin =mysql-bin

สุดท้าย ให้เริ่มบริการ MySQL ใหม่

sudo systemctl restart mysqld

ตอนนี้เรากำลังจะสร้างผู้ใช้การจำลองแบบ ดังนั้น ให้เข้าสู่ระบบเซิร์ฟเวอร์หลัก MySQL ของคุณในฐานะผู้ใช้รูทและระบุรหัสผ่าน

sudo mysql -u root -p

ตอนนี้รันคำสั่งต่อไปนี้เพื่อสร้างผู้ใช้เรพลิกาในขณะเดียวกันก็ให้สิทธิ์การเข้าถึงทาสแก่ผู้ใช้ อย่าลืมใช้ที่อยู่ IP ของเครื่องของคุณ

mysql> CREATE USER 'replica'@'173.82.115.165' IDENTIFIED BY 'strong_password';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'173.82.115.165';

ตอนนี้คุณจะพิมพ์คำสั่งต่อไปนี้ที่จะพิมพ์ชื่อไฟล์ไบนารีและตำแหน่ง

mysql> SHOW MASTER STATUS\G

อย่าลืมจดชื่อไฟล์ผลลัพธ์ msql-bin.000002 และตำแหน่งของไฟล์ 939

ขั้นตอนที่ 4: การกำหนดค่าเซิร์ฟเวอร์ MySQL Slave

เช่นเดียวกับกระบวนการตั้งค่าต้นแบบ คุณควรทำการเปลี่ยนแปลงต่อไปนี้กับไฟล์การกำหนดค่าทาสของ mysql

sudo vim  /etc/my.cnf

เพิ่มบรรทัดต่อไปนี้ในไฟล์กำหนดค่าภายใต้ส่วน mysqld

bind-address =173.82.115.165
server-id = 2
log_bin =mysql-bin

รีสตาร์ทเซิร์ฟเวอร์

sudo systemctl restart mysqld

ขั้นตอนต่อไปคือการกำหนดค่าเซิร์ฟเวอร์ทาสเพื่อจำลองแบบจากเซิร์ฟเวอร์หลัก เข้าสู่ระบบเซิร์ฟเวอร์ MySQL

sudo mysql -u root -p

ขั้นแรก หยุดเธรดการจำลองแบบ

mysql> STOP SLAVE;

ตอนนี้ เรียกใช้แบบสอบถามต่อไปนี้ที่จะกำหนดค่าทาสเพื่อจำลองแบบจากเซิร์ฟเวอร์หลัก

mysql> CHANGE MASTER TO
    -> MASTER_HOST='173.82.120.14' ,
    -> MASTER_USER='replica' ,
    -> MASTER_PASSWORD='Jupiter@2030' ,
    -> MASTER_LOG_FILE='mysql-bin.000002' ,
    -> MASTER_LOG_POS=939;

ตรวจสอบให้แน่ใจว่าคุณใช้ชื่อผู้ใช้และรหัสผ่าน IP ที่ถูกต้อง นอกจากนี้ ให้ใช้ชื่อไฟล์และตำแหน่งที่คุณได้รับจากเซิร์ฟเวอร์หลัก

สุดท้าย ให้พิมพ์คำสั่งต่อไปนี้เพื่อเริ่มเธรดทาส

mysql> START SLAVE;

ขั้นตอนที่ 5: การทดสอบการจำลองแบบ Master-Slave ของ MySQL

ณ จุดนี้ คุณได้เสร็จสิ้นการกำหนดค่าทั้งเซิร์ฟเวอร์หลักและเซิร์ฟเวอร์ทาสแล้ว ตอนนี้เราจำเป็นต้องตรวจสอบว่าการกำหนดค่าใช้งานได้หรือไม่และสามารถจำลองแบบได้หรือไม่

ในการดำเนินการนี้ ให้ไปที่เซิร์ฟเวอร์ ต้นแบบ และเข้าสู่ระบบเซิร์ฟเวอร์ฐานข้อมูล MySQL

sudo mysql -u root -p

สร้างฐานข้อมูลตัวอย่าง

mysql> CREATE DATABASE replication_database;

ตอนนี้ไปที่เซิร์ฟเวอร์ Slave และเข้าสู่ระบบเซิร์ฟเวอร์ฐานข้อมูล MySQL อีกครั้ง

sudo mysql -u root -p

ตอนนี้แสดงรายการฐานข้อมูลทั้งหมดโดยใช้คำสั่งต่อไปนี้

mysql> SHOW DATABASES;

หากคุณเห็นฐานข้อมูลที่สร้างขึ้น แสดงว่าการตั้งค่า MySQL Master-Slave Replication ใช้งานได้

บทสรุป

การจำลองแบบเป็นกระบวนการที่ค่อนข้างง่ายที่สามารถทำได้ง่าย ในคู่มือนี้ คุณได้เรียนรู้วิธีสร้างการจำลอง MySQL ต้นแบบให้เป็นทาสใน RHEL 8 Linux