אנדרואיד

כיצד להגדיר את תצורת

How To Configure MySQL Master-Slave Replication on Ubuntu 18.04

How To Configure MySQL Master-Slave Replication on Ubuntu 18.04

תוכן עניינים:

Anonim

שכפול MySQL הוא תהליך המאפשר העתקה של נתונים משרת מסד נתונים אחד אוטומטית לשרת אחד או יותר.

MySQL תומך במספר טופולוגיות שכפול כאשר טופולוגיית Master / Slave היא אחת הטופולוגיות הידועות ביותר בהן שרת מסד נתונים אחד משמש כמאסטר, בעוד שרת אחד או יותר פועלים כעבדים. כברירת מחדל, השכפול הוא אסינכרוני, כאשר המאסטר שולח אירועים המתארים שינויים בבסיס הנתונים ליומן הבינארי שלו ועבדים מבקשים את האירועים כאשר הם מוכנים.

הדרכה זו מכסה דוגמה בסיסית לשכפול MySQL Master / Slave עם יחידת יחיד ושרת עבדים אחד באובונטו 18.04. אותם צעדים חלים על MariaDB.

סוג זה של טופולוגיית שכפול מתאים ביותר לפריסה של העתקי קריאה לקנה מידה של קריאה, גיבוי מאגרי מידע חי לצורך התאוששות מאסון ועבודות ניתוח.

תנאים מוקדמים

דוגמה זו מניחה שיש לך שני שרתים שמריצים את אובונטו 18.04, שיכולים לתקשר זה עם זה ברשת פרטית. אם ספק האירוח שלך אינו מציע כתובות IP פרטיות, אתה יכול להשתמש בכתובות ה- IP הציבוריות ולהגדיר את חומת האש שלך כך שתאפשר תנועה ביציאה 3306 ממקורות מהימנים בלבד.

לשרתים בדוגמה זו יש את ה- IP הבא:

Master IP: 192.168.121.190 Slave IP: 192.168.121.236

התקן את MySQL

ברירת המחדל של מאגרי Ubuntu 18.04 כוללת את MySQL גרסה 5.7. כדי להימנע מבעיות כלשהן, עדיף להתקין את אותה גרסת MySQL בשני השרתים.

התקן את MySQL בשרת הראשי:

sudo apt-get update sudo apt-get install mysql-server

התקן את MySQL בשרת העבדים באמצעות אותן פקודות:

sudo apt-get update sudo apt-get install mysql-server

הגדר את תצורת השרת הראשי

השלב הראשון הוא להגדיר את תצורת שרת ה- MySQL הראשי. נבצע את השינויים הבאים:

  • הגדר את שרת MySQL להאזנה ב- IP הפרטי. הגדר מזהה שרת ייחודי… הפעל את רישום הבינארי

לשם כך פתח את קובץ התצורה של MySQL ואת ביטול ההסרה או הגדר את הדברים הבאים:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf master: /etc/mysql/mysql.conf.d/mysqld.cnf

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

לאחר ביצוע הפעולה, הפעל מחדש את שירות MySQL כדי שינויים ייכנסו לתוקף:

sudo systemctl restart mysql

השלב הבא הוא ליצור משתמש שכפול חדש. היכנס לשרת MySQL כמשתמש השורש על ידי הקלדה:

sudo mysql

מתוך בקשת MySQL, הפעל את שאילתות ה- SQL הבאות שתיצור את המשתמש REPLICATION SLAVE ויעניק למשתמש את הרשאת ה- REPLICATION SLAVE :

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

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.236'; הקפד לשנות את ה- IP עם כתובת ה- IP של העבדים שלך. אתה יכול לתת שם למשתמש כרצונך.

כשאתה עדיין בתוך הפקודה MySQL, בצע את הפקודה הבאה שתדפיס את שם הקובץ והמיקום הבינאריים.

SHOW MASTER STATUS\G

*************************** 1. row *************************** File: mysql-bin.000001 Position: 629 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)

שימו לב לשם הקובץ 'mysql-bin.000001' ומיקום '629'. תזדקק לערכים אלה בעת קביעת התצורה של שרת העבדים. ערכים אלה ככל הנראה יהיו שונים בשרת שלך.

הגדר את תצורת שרת העבדים

בדומה לשרת הראשי שלמעלה, נבצע את השינויים הבאים בשרת העבדים:

  • הגדר את שרת MySQL להאזנה ב- IPSet הפרטי, להגדיר שרת ייחודי הניתן לאפשרות הכניסה הבינארית

פתח את קובץ התצורה של MySQL וערוך את השורות הבאות:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf עבד: /etc/mysql/mysql.conf.d/mysqld.cnf

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

הפעל מחדש את שירות MySQL:

sudo systemctl restart mysql

השלב הבא הוא קביעת התצורה של הפרמטרים שבהם ישמש שרת העבדים כדי להתחבר לשרת הראשי. התחבר למעטפת MySQL:

sudo mysql

ראשית, עצרו את חוטי העבדים:

STOP SLAVE;

הפעל את השאילתה הבאה שתגדיר את העבד לשכפול המאסטר:

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

ודא שאתה משתמש בכתובת ה- IP, שם המשתמש והסיסמה הנכונים. שם קובץ היומן והמיקום חייבים להיות זהים לערכים שהשגת משרת האב.

לאחר סיום, התחל את חוטי העבדים.

START 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)

סיכום

במדריך זה הראינו שתיצור שכפול של MySQL Master / Slave.

אל תהסס להשאיר תגובה אם יש לך שאלות.

אובונטו mysql mariadb