एंड्रॉयड

Mysql मास्टर को कैसे कॉन्फ़िगर करें

कैसे CentOS पर मास्टर और गुलाम के साथ कॉन्फ़िगर MySQL डाटाबेस प्रतिकृति को

कैसे CentOS पर मास्टर और गुलाम के साथ कॉन्फ़िगर MySQL डाटाबेस प्रतिकृति को

विषयसूची:

Anonim

MySQL प्रतिकृति एक प्रक्रिया है जो आपको स्वचालित रूप से एक डेटाबेस सर्वर से एक या अधिक सर्वर पर डेटा कॉपी करने की अनुमति देती है।

MySQL मास्टर / स्लेव टोपोलॉजी के साथ कई प्रतिकृति टोपोलॉजी का समर्थन करता है जो सबसे प्रसिद्ध टोपोलॉजी में से एक है जिसमें एक डेटाबेस सर्वर मास्टर के रूप में कार्य करता है, जबकि एक या अधिक सर्वर दास के रूप में कार्य करते हैं। डिफ़ॉल्ट रूप से, प्रतिकृति एसिंक्रोनस होती है जहां मास्टर अपने बाइनरी लॉग में डेटाबेस संशोधनों का वर्णन करने वाली घटनाओं को भेजता है और दास तैयार होने पर घटनाओं का अनुरोध करते हैं।

इस ट्यूटोरियल में, हम बताएंगे कि कैसे एक मास्टर और एक दास सर्वर के साथ CentOS 7 पर एक MySQL मास्टर / स्लेव प्रतिकृति स्थापित किया जाए। यही कदम मारियाडीबी के लिए भी लागू होते हैं।

इस प्रकार की प्रतिकृति टोपोलॉजी रीड स्केलिंग, लाइव डेटाबेस बैकअप के लिए आपदा पुनर्प्राप्ति के लिए और एनालिटिक्स नौकरियों के लिए रीड प्रतिकृतियां तैनात करने के लिए सबसे उपयुक्त है।

आवश्यक शर्तें

इस उदाहरण में, हम मान रहे हैं कि आपके पास CentOS 7 पर चलने वाले दो सर्वर हैं, जो एक निजी नेटवर्क पर एक दूसरे के साथ संवाद कर सकते हैं। यदि आपका होस्टिंग प्रदाता निजी आईपी पते प्रदान नहीं करता है, तो आप केवल विश्वसनीय स्रोतों से पोर्ट 3306 पर यातायात की अनुमति देने के लिए सार्वजनिक आईपी पते का उपयोग कर सकते हैं और अपने फ़ायरवॉल को कॉन्फ़िगर कर सकते हैं।

इस उदाहरण के सर्वरों में निम्नलिखित IP हैं:

Master IP: 192.168.121.59 Slave IP: 192.168.121.14

MySQL स्थापित करें

डिफ़ॉल्ट The CentOS 7 रिपॉजिटरी में MySQL पैकेज शामिल नहीं हैं, इसलिए हम MySQL को उनके आधिकारिक यम रिपॉजिटरी से इंस्टॉल करेंगे। किसी भी समस्या से बचने के लिए, हम दोनों सर्वर पर एक ही MySQL संस्करण 5.7 स्थापित करेंगे।

MySQL को मास्टर और स्लेव सर्वर दोनों पर स्थापित करें:

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 उदाहरण की सुरक्षा में सुधार करने के लिए mysql_secure_installation कमांड चलाएं:

mysql_secure_installation

अस्थायी रूट पासवर्ड दर्ज करें और सभी प्रश्नों के लिए Y (हां) का उत्तर दें।

नए पासवर्ड के लिए कम से कम 8 अक्षर लंबे और कम से कम एक अपरकेस लेटर, एक लोअरकेस लेटर, एक नंबर और एक विशेष कैरेक्टर होना चाहिए।

मास्टर सर्वर को कॉन्फ़िगर करें

सबसे पहले, हम मास्टर MySQL सर्वर को कॉन्फ़िगर करेंगे और निम्नलिखित बदलाव करेंगे:

  • निजी IP पर सुनने के लिए MySQL सर्वर सेट करें। एक यूनिक सर्वर आईडी सेट करें। बाइनरी लॉगिंग को सक्षम करें।

ऐसा करने के लिए 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 प्रॉम्प्ट के अंदर से, निम्नलिखित 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'; सुनिश्चित करें कि आप अपने गुलाम आईपी पते के साथ आईपी को बदलते हैं। आप चाहें तो यूजर को नाम दे सकते हैं।

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' पर ध्यान दें । दास सर्वर को कॉन्फ़िगर करते समय आपको इन मूल्यों की आवश्यकता होगी। ये मान शायद आपके सर्वर पर अलग होंगे।

स्लेव सर्वर को कॉन्फ़िगर करें

ऊपर दिए गए मास्टर सर्वर के लिए, हम गुलाम सर्वर में निम्नलिखित बदलाव करेंगे:

  • निजी IPSet पर एक अद्वितीय सर्वर को सुनने के लिए MySQL सर्वर सेट करें बाइनरी लॉगिंग को पहचानने योग्य

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;

निम्नलिखित क्वेरी को चलाएँ जो स्वामी को दोहराने के लिए दास स्थापित करेगा:

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)

निष्कर्ष

इस ट्यूटोरियल में, हमने आपको CentOS 7 पर एक MySQL मास्टर / स्लेव प्रतिकृति बनाने के लिए दिखाया है।

यदि आपके कोई प्रश्न हैं, तो टिप्पणी छोड़ने के लिए स्वतंत्र महसूस करें।

सेंटो मायस्कल मरदब