אנדרואיד

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

How to Configure MySQL Database Replication with Master and Slave on CentOS

How to Configure MySQL Database Replication with Master and Slave on CentOS

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

Anonim

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

MySQL תומך במספר טופולוגיות שכפול כאשר טופולוגיית Master / 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 הרשמי שלהם. כדי להימנע מבעיות אנו נתקין את אותה גרסה 5.7 של MySQL בשני השרתים.

התקן את 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 (כן) לכל השאלות.

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

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

ראשית, נקבע את התצורה של שרת ה- MySQL הראשי ונבצע את השינויים הבאים:

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

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

sudo nano /etc/my.cnf master: /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, הפעל את שאילתות ה- SQL הבאות שתיצור את המשתמש REPLICATION SLAVE ויעניק למשתמש את הרשאת ה- 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'. תזדקק לערכים אלה בעת קביעת התצורה של שרת העבדים. ערכים אלה ככל הנראה יהיו שונים בשרת שלך.

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

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

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

פתח את קובץ התצורה של 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;

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

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, שם המשתמש והסיסמה הנכונים. שם קובץ היומן והמיקום חייבים להיות זהים לערכים שהשגת משרת האב.

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

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

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

סנטוס mysql mariadb