Android

วิธีการกำหนดค่าหลัก mysql (mariadb)

O'Reilly Webcast: MySQL Replication - Audit, Test & Verify

O'Reilly Webcast: MySQL Replication - Audit, Test & Verify

สารบัญ:

Anonim

การเรพลิเคท MySQL เป็นกระบวนการคัดลอกข้อมูลจากเซิร์ฟเวอร์ฐานข้อมูลหนึ่งตัว (มาสเตอร์) ไปยังเซิร์ฟเวอร์หนึ่งตัวหรือมากกว่า (ทาส)

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

ในคู่มือนี้เราจะแสดงวิธีการตั้งค่าการจำลองแบบ MariaDB Master / Slave ด้วยต้นแบบหนึ่งตัวและเซิร์ฟเวอร์ทาสหนึ่งตัวบน Debian 10 MariaDB เป็นการใช้งานเริ่มต้นของ MySQL ใน Debian ขั้นตอนเดียวกันนี้ใช้กับ Oracle MySQL

โทโพโลยีการจำลองแบบชนิดนี้เหมาะที่สุดสำหรับการปรับใช้แบบจำลองการอ่านสำหรับการปรับขนาดการอ่านการสำรองฐานข้อมูลสดสำหรับการกู้คืนจากความเสียหายและสำหรับงานการวิเคราะห์

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

เราสมมติว่าคุณมีเซิร์ฟเวอร์สองเครื่องที่ใช้ Debian 10 สื่อสารกันผ่านเครือข่ายส่วนตัว หากผู้ให้บริการโฮสต์ของคุณไม่สนับสนุนที่อยู่ IP ส่วนตัวคุณสามารถใช้ที่อยู่ IP สาธารณะและกำหนดค่าไฟร์วอลล์ของคุณเพื่ออนุญาตการรับส่งข้อมูลบนพอร์ต 3306 จากแหล่งที่เชื่อถือได้เท่านั้น

เซิร์ฟเวอร์ที่ใช้ในตัวอย่างนี้มีที่อยู่ IP ต่อไปนี้:

Master IP: 10.10.8.12 Slave IP: 10.10.8.164

การติดตั้ง MariaDB

ค่าเริ่มต้นที่เก็บ Debian 10 มี MariaDB เวอร์ชัน 10.3 ทางที่ดีที่สุดคือติดตั้ง MariaDB เวอร์ชั่นเดียวกันบนเซิร์ฟเวอร์ทั้งสองเพื่อหลีกเลี่ยงปัญหาที่อาจเกิดขึ้น

ติดตั้ง MariaDB ทั้งบนมาสเตอร์และสลาฟโดยออกคำสั่งต่อไปนี้:

sudo apt-get update sudo apt-get install mariadb-server

การกำหนดค่าเซิร์ฟเวอร์หลัก

ขั้นตอนแรกคือการตั้งค่าเซิร์ฟเวอร์หลัก เราจะทำการเปลี่ยนแปลงต่อไปนี้:

  • ตั้งค่าเซิร์ฟเวอร์ MariaDB ให้รับฟังบน IP ส่วนตัวตั้งรหัสเซิร์ฟเวอร์ที่ไม่ซ้ำการเปิดใช้งานการบันทึกไบนารี

เปิดไฟล์คอนฟิกูเรชัน MariaDB และไม่ใส่เครื่องหมายข้อคิดเห็นหรือตั้งค่าบรรทัดต่อไปนี้:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf ต้นแบบ: /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address = 10.10.8.12 server-id = 1 log_bin = /var/log/mysql/mysql-bin.log

เมื่อเสร็จแล้วให้บันทึกไฟล์และเริ่มบริการ MySQL ใหม่เพื่อให้การเปลี่ยนแปลงมีผล:

sudo systemctl restart mariadb

ขั้นตอนต่อไปคือการสร้างผู้ใช้การจำลองแบบใหม่ ล็อกอินเข้าสู่เซิร์ฟเวอร์ MariaDB ในฐานะผู้ใช้รูท:

sudo mysql

รันเคียวรี SQL ต่อไปนี้เพื่อสร้างผู้ใช้ที่ชื่อ replica และให้สิทธิ์ REPLICATION SLAVE แก่ผู้ใช้:

CREATE USER 'replica'@'10.10.8.164' IDENTIFIED BY 'replica_password';

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'10.10.8.164'; ตรวจสอบให้แน่ใจว่าคุณเปลี่ยน IP ด้วยที่อยู่ IP สลาฟของคุณ คุณสามารถตั้งชื่อผู้ใช้ตามที่คุณต้องการ

ในขณะที่อยู่ในพรอมต์ MySQL ให้ใช้คำสั่งต่อไปนี้เพื่อพิมพ์ชื่อไฟล์ไบนารีและตำแหน่ง

SHOW MASTER STATUS\G

*************************** 1. row *************************** File: mysql-bin.000001 Position: 328 Binlog_Do_DB: Binlog_Ignore_DB: 1 row in set (0.001 sec)

จดชื่อไฟล์ 'mysql-bin.000001' และตำแหน่ง '328' ค่าเหล่านี้มีความจำเป็นเมื่อกำหนดค่าเซิร์ฟเวอร์ทาสและอาจแตกต่างกันในเซิร์ฟเวอร์ของคุณ

การกำหนดค่าเซิร์ฟเวอร์ Slave

เราจะทำการเปลี่ยนแปลงบนทาสเซิร์ฟเวอร์เหมือนกับการเปลี่ยนแปลงบนมาสเตอร์:

  • ตั้งค่าเซิร์ฟเวอร์ MySQL ให้ฟังบน IP ส่วนตัวตั้งรหัสเซิร์ฟเวอร์ที่ไม่ซ้ำกัน

เปิดไฟล์คอนฟิกูเรชัน MariaDB และแก้ไขบรรทัดต่อไปนี้:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf ทาส: /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address = 10.10.8.164 server-id = 2 log_bin = /var/log/mysql/mysql-bin.log

เริ่มบริการ MariaDB ใหม่:

sudo systemctl restart mariadb

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

sudo mysql

เริ่มต้นด้วยการหยุดกระทู้ทาส:

STOP SLAVE;

เรียกใช้แบบสอบถามต่อไปนี้เพื่อกำหนดค่าการจำลองแบบ Master / Slave:

CHANGE MASTER TO MASTER_HOST='10.10.8.12', MASTER_USER='replica', MASTER_PASSWORD='replica_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=328;

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

เมื่อเสร็จแล้วเริ่มหัวข้อทาส

START SLAVE;

ทดสอบการกำหนดค่า

ณ จุดนี้คุณควรมีการตั้งค่าการจำลองแบบ Master / Slave ที่ใช้งานได้

หากต้องการตรวจสอบว่าทุกอย่างถูกตั้งค่าอย่างถูกต้องให้สร้างฐานข้อมูลใหม่บนเซิร์ฟเวอร์หลัก:

sudo mysql

CREATE DATABASE replicatest;

เข้าสู่ระบบไปยังเปลือก MySQL ทาส:

sudo mysql

รันคำสั่งต่อไปนี้เพื่อแสดงรายการฐานข้อมูลทั้งหมด:

SHOW DATABASES;

คุณจะสังเกตเห็นว่าฐานข้อมูลที่คุณสร้างขึ้นบนเซิร์ฟเวอร์หลักได้รับการจำลองแบบบนสลาฟ:

+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | replicatest | | sys | +--------------------+ 5 rows in set (0.00 sec)

ข้อสรุป

ในบทช่วยสอนนี้เราได้แสดงให้คุณเห็นการสร้างแบบจำลอง MariaDB Master / Slave บน Debian 10

อย่าลังเลที่จะแสดงความคิดเห็นหากคุณมีคำถามใด ๆ

debian mysql mariadb