डेटा प्रतिकृति डेटा उपलब्धता में सुधार और किसी एप्लिकेशन की विश्वसनीयता और प्रदर्शन को बढ़ाने के लिए आपके डेटा को कई सर्वरों पर कॉपी करने की प्रक्रिया है। MySQL . में प्रतिकृति, डेटा की एकरूपता सुनिश्चित करने और बैकअप और अतिरेक प्रदान करने के लिए डेटा को वास्तविक समय में मास्टर सर्वर से अन्य नोड्स में डेटाबेस से कॉपी किया जाता है।
इस गाइड में, हम प्रदर्शित करते हैं कि आप MySQL . कैसे सेट कर सकते हैं? (मास्टर-दास ) आरएचईएल-आधारित वितरणों में प्रतिकृति जैसे CentOS , फेडोरा , रॉकी लिनक्स, और अल्मालिनक्स ।
MySQL प्रतिकृति सेटअप
तो, ये रहा हमारा MySQL प्रतिकृति प्रयोगशाला सेटअप।
MySQL मास्टर - 10.128.0.14MySQL स्लेव - 10.128.15.211
आइए शुरू करें...
चरण 1:मास्टर और स्लेव सर्वर पर MySQL स्थापित करें
हम MySQL . को स्थापित करके शुरुआत करेंगे दोनों मास्टर . पर डेटाबेस और गुलाम सर्वर।
$ sudo dnf install @mysql
एक बार इंस्टॉलेशन पूरा हो जाने के बाद, डेटाबेस सर्वर शुरू करने के लिए एक बिंदु बनाएं।
$ sudo systemctl start mysqld
फिर इसे सिस्टम स्टार्टअप या रीबूट पर प्रारंभ करने के लिए सक्षम करें।
$ sudo systemctl mysqld को सक्षम करें
इसके बाद, पुष्टि करें कि MySQL डेटाबेस सर्वर दिखाए गए अनुसार चल रहा है:
$ sudo systemctl status mysqld
चरण 2:मास्टर और स्लेव सर्वर पर MySQL को सुरक्षित करें
अगला कदम MySQL . को सुरक्षित करना है दोनों मास्टर . पर डेटाबेस और गुलाम सर्वर। ऐसा इसलिए है क्योंकि डिफ़ॉल्ट सेटिंग्स असुरक्षित हैं और कुछ खामियां पेश करती हैं जिनका हैकर्स आसानी से फायदा उठा सकते हैं।
तो, MySQL को सख्त करने के लिए, कमांड चलाएँ:
$ sudo mysql_secure_installation
सबसे पहले, आपको MySQL . सेट करना होगा रूट पासवर्ड। एक मजबूत रूट पासवर्ड प्रदान करना सुनिश्चित करें, अधिमानतः 8 से अधिक वर्णों के साथ जो अपरकेस, लोअरकेस, विशेष और संख्यात्मक वर्णों का मिश्रण हैं।
शेष संकेतों के लिए, 'Y'
. टाइप करें डेटाबेस सर्वर को अनुशंसित सेटिंग्स में बदलने के लिए।
एक बार जब आप MySQL को स्थापित और सख्त करना समाप्त कर लें मास्टर और स्लेव नोड पर, अगला मास्टर नोड को कॉन्फ़िगर करना है।
चरण 3:मास्टर नोड (सर्वर) को कॉन्फ़िगर करें
अगला चरण मास्टर . को कॉन्फ़िगर करना है नोड दें और दास . प्रदान करें इसके लिए नोड एक्सेस। सबसे पहले, हमें mysql-server.cnf . को संपादित करने की आवश्यकता है कॉन्फ़िगरेशन फ़ाइल।
$ sudo vim /etc/my.cnf.d/mysql-server.cnf
[mysqld]
. के अंतर्गत निम्न पंक्तियाँ जोड़ें अनुभाग।
बाइंड-एड्रेस =10.128.0.14सर्वर-आईडी =1log_bin =mysql-bin
एक बार हो जाने के बाद, परिवर्तनों को सहेजें और बाहर निकलें। फिर MySQL को पुनरारंभ करें सर्वर।
$ sudo sysemctl mysqld को पुनरारंभ करें
इसके बाद, MySQL में लॉग इन करें खोल।
$ sudo mysql -u root -p
डेटाबेस उपयोगकर्ता बनाने के लिए निम्न आदेश निष्पादित करें जिसका उपयोग मास्टर और दास को प्रतिकृति के लिए बाध्य करने के लिए किया जाएगा।
mysql> '[email protected]' द्वारा पहचाने गए उपयोगकर्ता 'प्रतिकृति'@'10.128.15.211' बनाएं;mysql> * पर प्रतिकृति दास प्रदान करें।*'प्रतिकृति'@'10.128.15.211' पर;
परिवर्तन लागू करें और MySQL . से बाहर निकलें सर्वर।
mysql> फ्लश PRIVILEGES;mysql> EXIT;
मास्टर की स्थिति सत्यापित करें।
mysql> SHOW MASTER STATUS\G
फ़ाइल नाम और स्थिति पर ध्यान दें। प्रतिकृति के लिए दास की स्थापना करते समय आपको बाद में इसकी आवश्यकता होगी। हमारे मामले में, हमारे पास फ़ाइल नाम mysql-bin.000001
. है और स्थिति 1232 ।
चरण 4:स्लेव नोड (सर्वर) को कॉन्फ़िगर करें
अब, स्लेव नोड पर वापस जाएं। एक बार फिर, mysql-server.cnf को संपादित करें कॉन्फ़िगरेशन फ़ाइल।
$ sudo vim /etc/my.cnf.d/mysql-server.cnf
पहले की तरह, इन पंक्तियों को [mysqld]
. के अंतर्गत चिपकाएं खंड। दास के आईपी के अनुरूप आईपी पता बदलें। साथ ही, एक अलग सर्वर-आईडी असाइन करें . यहां हमने इसे 2 . का मान दिया है ।
बाइंड-एड्रेस =10.128.15.211सर्वर-आईडी =2log_bin =mysql-bin
परिवर्तनों को सहेजें और फ़ाइल से बाहर निकलें। फिर डेटाबेस सर्वर को पुनरारंभ करें।
$ sudo systemctl mysqld को पुनरारंभ करें
दासको कॉन्फ़िगर करने के लिए मास्टर नोड से दोहराने के लिए नोड, स्लेव के MySQL सर्वर में लॉग इन करें।
$ sudo mysql -u root -p
सबसे पहले और सबसे महत्वपूर्ण, प्रतिकृति थ्रेड्स को रोकें:
mysql> स्लेव रोकें;
फिर मास्टर से डेटाबेस को दोहराने के लिए दास नोड को कॉन्फ़िगर करने के लिए निम्न आदेश निष्पादित करें।
mysql> मास्टर को MASTER_HOST='10.128.0.14' , MASTER_USER='replica' , MASTER_PASSWORD='[email protected]' , MASTER_LOG_FILE='mysql-bin.000001' , MASTER_LOG_POS=1232 में बदलें;ध्यान दें कि MASTER_LOG_FILE और MASTER_LOG_POS फ़्लैग फ़ाइल और स्थिति के अनुरूप हैं मास्टर . से मान चरण 1 के अंत में नोड।
MASTER_HOST , MASTER_USER, और MASTER_PASSWORD क्रमशः मास्टर आईपी पते, प्रतिकृति उपयोगकर्ता और प्रतिकृति उपयोगकर्ता के पासवर्ड के अनुरूप।
फिर स्लेव प्रतिकृति थ्रेड प्रारंभ करें:
mysql> स्लेव शुरू करें;चरण 4:MySQL मास्टर-स्लेव प्रतिकृति का परीक्षण करना
अब, यह जांचने के लिए कि क्या मास्टर और स्लेव नोड के बीच प्रतिकृति काम कर रही है, मास्टर नोड पर MySQL डेटाबेस सर्वर में लॉग इन करें:
$ sudo mysql -u root -pएक परीक्षण डेटाबेस बनाएँ। यहां, हमारे परीक्षण डेटाबेस को replication_db . कहा जाता है ।
mysql> डेटाबेस प्रतिकृति_डीबी बनाएं;डेटाबेस के अस्तित्व की पुष्टि करें।mysql> डेटाबेस दिखाएं;अब, स्लेव नोड पर जाएं, MySQL सर्वर में लॉग इन करें और पुष्टि करें कि replication_db डेटाबेस मौजूद है। नीचे दिए गए आउटपुट से, हम देख सकते हैं कि डेटाबेस मौजूद है। यह पुष्टि है कि मास्टर से दास नोड में प्रतिकृति हुई है।
mysql> डेटाबेस दिखाएं;और बस इतना ही, हमने सफलतापूर्वक प्रदर्शित किया है कि आप MySQL . कैसे सेट कर सकते हैं मास्टर-स्लेव प्रतिकृति मॉडल जो डेटाबेस को मास्टर नोड से स्लेव नोड में दोहरा सकता है।