Webinar replay: Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison - part 3
สารบัญ:
- ข้อกำหนดเบื้องต้น
- ติดตั้ง MySQL
- กำหนดค่าเซิร์ฟเวอร์หลัก
- กำหนดค่าเซิร์ฟเวอร์ Slave
- ทดสอบการกำหนดค่า
- ข้อสรุป
การเรพลิเคท MySQL เป็นกระบวนการที่อนุญาตให้คุณคัดลอกข้อมูลจากเซิร์ฟเวอร์ฐานข้อมูลหนึ่งไปยังเซิร์ฟเวอร์หนึ่งเซิร์ฟเวอร์ขึ้นไปโดยอัตโนมัติ
MySQL รองรับโทโพโลยีการจำลองแบบจำนวนมากด้วยโทโพโลยีโทโพโลยี / Slave เป็นหนึ่งในโทโพโลยีที่รู้จักกันดีที่สุดซึ่งเซิร์ฟเวอร์ฐานข้อมูลหนึ่งทำหน้าที่เป็นมาสเตอร์ในขณะที่หนึ่งหรือมากกว่าหนึ่งเซิร์ฟเวอร์ทำหน้าที่เป็นทาส โดยค่าเริ่มต้นการจำลองแบบไม่ตรงกันที่ต้นแบบส่งเหตุการณ์ที่อธิบายถึงการปรับเปลี่ยนฐานข้อมูลเพื่อเข้าสู่ระบบไบนารีและทาสขอกิจกรรมเมื่อพวกเขาพร้อม
ในบทช่วยสอนนี้เราจะอธิบายวิธีตั้งค่าการจำลองแบบ MySQL Master / Slave ด้วยหนึ่งมาสเตอร์และสลาฟเซิร์ฟเวอร์หนึ่งรายการบน CentOS 7 ขั้นตอนเดียวกันนี้ใช้กับ MariaDB
โทโพโลยีการจำลองแบบชนิดนี้เหมาะที่สุดสำหรับการปรับใช้แบบจำลองการอ่านสำหรับการปรับขนาดการอ่านการสำรองฐานข้อมูลสดสำหรับการกู้คืนจากความเสียหายและสำหรับงานการวิเคราะห์
ข้อกำหนดเบื้องต้น
ในตัวอย่างนี้เราสมมติว่าคุณมีเซิร์ฟเวอร์สองเครื่องที่ใช้งาน CentOS 7 ซึ่งสามารถสื่อสารระหว่างกันผ่านเครือข่ายส่วนตัว หากผู้ให้บริการโฮสต์ของคุณไม่ได้ให้ที่อยู่ IP ส่วนตัวคุณสามารถใช้ที่อยู่ IP สาธารณะและกำหนดค่าไฟร์วอลล์ของคุณเพื่ออนุญาตการรับส่งข้อมูลบนพอร์ต 3306 จากแหล่งที่เชื่อถือได้เท่านั้น
เซิร์ฟเวอร์ในตัวอย่างนี้มี IP ดังต่อไปนี้:
Master IP: 192.168.121.59 Slave IP: 192.168.121.14
ติดตั้ง MySQL
ค่าเริ่มต้นที่เก็บ CentOS 7 ไม่มีแพ็คเกจ MySQL ดังนั้นเราจะติดตั้ง MySQL จาก Yum Repository อย่างเป็นทางการ เพื่อหลีกเลี่ยงปัญหาใด ๆ เราจะติดตั้ง MySQL เวอร์ชั่น 5.7 เดียวกันบนเซิร์ฟเวอร์ทั้งสอง
ติดตั้ง MySQL บนเซิร์ฟเวอร์ Master และ Slave:
sudo yum localinstall
sudo yum install mysql-community-server
เมื่อการติดตั้งเสร็จสิ้นให้เริ่มบริการ MySQL และเปิดใช้งานการบู๊ตอัตโนมัติโดยเริ่มจาก:
sudo systemctl enable mysqld
sudo systemctl start mysqld
เมื่อเซิร์ฟเวอร์ MySQL เริ่มขึ้นเป็นครั้งแรกจะมีการสร้างรหัสผ่านชั่วคราวสำหรับผู้ใช้รูท MySQL ในการค้นหารหัสผ่านให้ใช้คำสั่ง grep ต่อไปนี้:
sudo grep 'temporary password' /var/log/mysqld.log
รันคำสั่ง
mysql_secure_installation
เพื่อตั้งค่ารหัสผ่านรูทใหม่ของคุณและปรับปรุงความปลอดภัยของอินสแตนซ์ MySQL:
mysql_secure_installation
ป้อนรหัสผ่านรูทชั่วคราวและตอบ
Y
(ใช่) สำหรับคำถามทั้งหมด
กำหนดค่าเซิร์ฟเวอร์หลัก
อันดับแรกเราจะกำหนดค่าเซิร์ฟเวอร์ MySQL หลักและทำการเปลี่ยนแปลงต่อไปนี้:
- ตั้งค่าเซิร์ฟเวอร์ MySQL ให้ฟังบน IP ส่วนตัวตั้งรหัสเซิร์ฟเวอร์ที่ไม่ซ้ำกันเปิดใช้งานการบันทึกแบบไบนารี
ให้เปิดไฟล์การตั้งค่า MySQL และเพิ่มบรรทัดต่อไปนี้ใน
มาตรา:
sudo nano /etc/my.cnf
ต้นแบบ: /etc/my.cnf
bind-address = 192.168.121.59 server-id = 1 log_bin = mysql-bin
เมื่อเสร็จแล้วให้เริ่มบริการ MySQL เพื่อให้การเปลี่ยนแปลงมีผล
sudo systemctl restart mysqld
ขั้นตอนต่อไปคือการสร้างผู้ใช้การจำลองแบบใหม่ เข้าสู่ระบบเซิร์ฟเวอร์ MySQL ในฐานะผู้ใช้รูท:
mysql -uroot -p
จากภายใน MySQL prompt ให้รันเคียวรี SQL ต่อไปนี้ที่จะสร้างผู้ใช้เร
replica
และให้สิทธิ์
REPLICATION SLAVE
แก่ผู้ใช้:
CREATE USER 'replica'@'192.168.121.14' IDENTIFIED BY 'strong_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.14';
ตรวจสอบให้แน่ใจว่าคุณเปลี่ยน IP ด้วยที่อยู่ IP สลาฟของคุณ คุณสามารถตั้งชื่อผู้ใช้ตามที่คุณต้องการ
ในขณะที่อยู่ในพรอมต์ MySQL ให้ใช้คำสั่งต่อไปนี้เพื่อพิมพ์ชื่อไฟล์ไบนารีและตำแหน่ง
SHOW MASTER STATUS\G
*************************** 1. row *************************** File: mysql-bin.000001 Position: 1427 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)
จดชื่อไฟล์ 'mysql-bin.000001' และตำแหน่ง '1427' คุณจะต้องมีค่าเหล่านี้เมื่อกำหนดค่าเซิร์ฟเวอร์ทาส ค่าเหล่านี้อาจแตกต่างกันไปในเซิร์ฟเวอร์ของคุณ
กำหนดค่าเซิร์ฟเวอร์ Slave
เช่นเดียวกับเซิร์ฟเวอร์หลักด้านบนเราจะทำการเปลี่ยนแปลงต่อไปนี้กับเซิร์ฟเวอร์ทาส:
- ตั้งค่าเซิร์ฟเวอร์ MySQL ให้ฟังบน IPSet ส่วนตัวเซิร์ฟเวอร์ที่ไม่ซ้ำ IDEnable การบันทึกแบบไบนารี
เปิดไฟล์คอนฟิกูเรชัน MySQL และแก้ไขบรรทัดต่อไปนี้:
sudo nano /etc/my.cnf
ทาส: /etc/my.cnf
bind-address = 192.168.121.14 server-id = 2 log_bin = mysql-bin
เริ่มบริการ MySQL ใหม่:
sudo systemctl restart mysqld
ขั้นตอนต่อไปคือการกำหนดค่าพารามิเตอร์ที่เซิร์ฟเวอร์ทาสจะใช้เพื่อเชื่อมต่อกับเซิร์ฟเวอร์หลัก เข้าสู่ระบบไปยังเปลือก MySQL:
mysql -uroot -p
ขั้นแรกหยุดเธรดสลาฟ:
STOP SLAVE;
รันเคียวรีต่อไปนี้ที่จะตั้งค่า slave เพื่อทำซ้ำมาสเตอร์:
CHANGE MASTER TO
MASTER_HOST='192.168.121.59',
MASTER_USER='replica',
MASTER_PASSWORD='strong_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=1427;
ตรวจสอบให้แน่ใจว่าคุณใช้ที่อยู่ IP ชื่อผู้ใช้และรหัสผ่านที่ถูกต้อง ชื่อไฟล์บันทึกและตำแหน่งจะต้องเหมือนกับค่าที่คุณได้รับจากเซิร์ฟเวอร์หลัก
เมื่อเสร็จแล้วเริ่มหัวข้อทาส
ทดสอบการกำหนดค่า
ณ จุดนี้คุณควรมีการตั้งค่าการจำลองแบบ Master / Slave ที่ใช้งานได้
หากต้องการตรวจสอบว่าทุกอย่างทำงานได้ตามที่คาดหวังเราจะสร้างฐานข้อมูลใหม่บนเซิร์ฟเวอร์หลัก:
mysql -uroot -p
CREATE DATABASE replicatest;
เข้าสู่ระบบไปยังเปลือก MySQL ทาส:
mysql -uroot -p
รันคำสั่งต่อไปนี้เพื่อแสดงรายการฐานข้อมูลทั้งหมด:
SHOW DATABASES;
คุณจะสังเกตเห็นว่าฐานข้อมูลที่คุณสร้างขึ้นบนเซิร์ฟเวอร์หลักได้รับการจำลองแบบบนสลาฟ:
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | replicatest | | sys | +--------------------+ 5 rows in set (0.00 sec)
ข้อสรุป
ในบทช่วยสอนนี้เราได้แสดงให้คุณสร้างการจำลองแบบ MySQL Master / Slave บน CentOS 7
อย่าลังเลที่จะแสดงความคิดเห็นหากคุณมีคำถามใด ๆ
centos mysql mariadbSun's Mickos: ฉันสบายดีกับ MySQL ของ MySQL 5.1 Rant
ผู้บริหารอาวุโสของ Sun ในวันจันทร์ลดลงความขัดแย้งกับสาธารณะล่าสุด วิพากษ์วิจารณ์โดยผู้ร่วมก่อตั้ง MySQL Michael Johnson "Monty" Widenius ซึ่งเป็นนักพัฒนาซอฟต์แวร์ฐานข้อมูลแบบโอเพนซอร์สของ MySQL ได้ปล่อย MySQL 5.1 เวอร์ชั่นล่าสุดของ Sun Microsystems ด้วยโพสต์โพสต์โพสต์ trashing ของเขาเมื่อวันที่ 29 พฤศจิกายนที่ผ่านมา Widenius เตือนให้ผู้ใช้ "ระมัดระวังเกี่ยวกับ MySQL 5.1" เพราะ "มีข้อผิดพลาดร้ายแรงที่รู้จักและไม่รู้จักหลายอย่างในคุณสมบัติใหม่ ๆ ที่ยังไม่ได้กล่าวถึง ความเห็นของ Widenius เพิ่มขึ้นอ
วิธีการกำหนดค่า BIOS ของเครื่องพีซี
ในตอนที่ 7 เราจะจบซีรี่ส์ "Build a Great Media Editing PC" โดยแสดงวิธีตั้งค่า BIOS
วิธีการกำหนดค่า mysql master
การเรพลิเคท MySQL เป็นกระบวนการที่ช่วยให้ข้อมูลจากเซิร์ฟเวอร์ฐานข้อมูลหนึ่งสามารถคัดลอกไปยังเซิร์ฟเวอร์หนึ่งหรือมากกว่านั้นโดยอัตโนมัติ บทช่วยสอนนี้ครอบคลุมตัวอย่างพื้นฐานของการจำลองแบบ MySQL Master / Slave ด้วยหนึ่งต้นแบบและหนึ่งเซิร์ฟเวอร์ทาสบน Ubuntu 18.04