Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL डेटाबेस को दूसरे सर्वर पर कैसे रिपीट करें

MySQL प्रतिकृति आपको डेटाबेस को एक सर्वर से दूसरे सर्वर पर आसानी से कॉपी करने की अनुमति देता है। MySQL विभिन्न प्रकार की प्रतिकृति का समर्थन करता है जैसे मास्टर-स्लेव, मास्टर-मास्टर और समूह प्रतिकृति। मारियाडीबी मल्टी-मास्टर प्रतिकृति का भी समर्थन करता है। इस लेख में, हम MySQL में मास्टर-स्लेव प्रतिकृति देखेंगे और सीखेंगे कि लिनक्स में MySQL डेटाबेस को कैसे दोहराया जाए। आप उबंटू, डेबियन, सेंटोस, फेडोरा, रेड हैट और अन्य प्रकार के लिनक्स में MySQL डेटाबेस को दोहराने के लिए इन चरणों का उपयोग कर सकते हैं।


MySQL डेटाबेस को कैसे रिपीट करें

यहाँ MySQL डेटाबेस को दोहराने के चरण दिए गए हैं। हमारे सेटअप के लिए, हमें एक मास्टर डेटाबेस (IP - 54.24.32.12) और एक स्लेव डेटाबेस (IP - 45.12.21.23) की आवश्यकता होगी। हम exampledb . नाम के डेटाबेस की प्रतिकृति बनाएंगे स्वामी से दास तक। हमने माना है कि आपने इन दोनों सर्वरों पर MySQL स्थापित किया है, और आपके पास इन दोनों के लिए रूट विशेषाधिकार हैं। अन्यथा आप निम्न आदेश के साथ MySQL स्थापित कर सकते हैं

$ sudo apt-get install mysql-server mysql-client

बोनस पढ़ें :शीर्ष MySQL कार्यक्षेत्र विकल्प


<एच2>1. मास्टर कॉन्फ़िगरेशन फ़ाइल संपादित करें

मास्टर डेटाबेस के सर्वर पर टर्मिनल खोलें और निम्न कमांड चलाएँ

$ sudo vi /etc/mysql/my.cnf

डिफ़ॉल्ट रूप से, MySQL में दूरस्थ कनेक्शन अक्षम हैं। हमें प्रतिकृति के लिए दास से मास्टर तक दूरस्थ कनेक्शन की अनुमति देने की आवश्यकता है। इसलिए हम निम्न दो पंक्तियों को दूरस्थ कनेक्शन की अनुमति देने के लिए, उनकी शुरुआत में # जोड़कर, जैसा कि नीचे दिखाया गया है, अनकम्मेंट करते हैं

#skip-networking
#bind-address=127.0.0.1

निम्नलिखित की तरह दिखने के लिए [mysqld] ब्लॉक में निम्नलिखित पंक्तियों को जोड़ें या असंबद्ध करें।

[mysqld]
server-id=1
log-bin = /var/log/mysql/mysql-bin.log
binlog-do-db=exampledb

आइए उपरोक्त प्रत्येक पंक्ति को देखें। पहली पंक्ति सर्वर-आईडी मास्टर के लिए एक अद्वितीय आईडी संख्या निर्दिष्ट करती है। यह 1 से 2^32 तक एक धनात्मक संख्या होनी चाहिए।

लॉग-बिन लॉग फ़ाइल स्थान निर्दिष्ट करता है जो प्रतिकृति के विवरण के साथ MySQL द्वारा पॉप्युलेट किया जाएगा।

बिनलॉग-डू-डीबी डेटाबेस का नाम इंगित करता है जिसे दोहराने की आवश्यकता है।

परिवर्तन लागू करने के लिए MySQL सर्वर को पुनरारंभ करें

$ sudo service mysql restart

रूट उपयोगकर्ता के रूप में MySQL में लॉग इन करें

$ sudo mysql -u root -p

और निम्न आदेश चलाएँ

mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      107 |   exampledb  |                  |
+------------------+----------+--------------+------------------+

कृपया उपरोक्त विवरणों पर ध्यान दें, हमें बाद में चरण #3 में उनकी आवश्यकता होगी।

बोनस पढ़ें :MySQL में SSL/TLS कैसे सक्षम करें


2. प्रतिकृति उपयोगकर्ता बनाएं

मास्टर पर MySQL सर्वर में लॉग इन करें।

$ sudo mysql -u root -p

आपको रूट पासवर्ड के लिए कहा जाएगा।

MySQL में लॉग इन करने के बाद, एक दूरस्थ उपयोगकर्ता बनाने के लिए निम्न कमांड चलाएँ slave_user , और इसे सभी डेटाबेस के लिए प्रतिकृति अनुमतियां प्रदान करें। कृपया नीचे 45.12.21.23 को अपने स्लेव सर्वर के आईपी से बदलें, और $password को अपनी आवश्यकता के अनुसार उपयुक्त पासवर्ड से बदलें।

mysql> CREATE USER slave_user@45.12.21.23; 
mysql> GRANT REPLICATION SLAVE ON *.* TO slave_user@45.12.21.23
       IDENTIFIED BY '$password';
mysql> FLUSH PRIVILEGES;

कृपया पोर्ट 3306 के लिए एक इनबाउंड फ़ायरवॉल नियम जोड़ें और 45.12.21.23 को अनुमति दें। इस दूरस्थ उपयोगकर्ता को प्रतिकृति होने के लिए मास्टर डेटाबेस से कनेक्ट करने की आवश्यकता है।

बोनस पढ़ें :MySQL में सभी टेबल्स के कोलेशन को कैसे बदलें


3. स्लेव कॉन्फ़िगरेशन फ़ाइल संपादित करें

स्लेव डेटाबेस के सर्वर पर टर्मिनल खोलें और निम्न कमांड चलाएँ

$ sudo vi /etc/mysql/my.cnf

जैसा दिखने के लिए [mysqld] के अंतर्गत निम्न पंक्तियाँ जोड़ें

[mysqld]
server-id = 2
relay-log = /var/log/mysql/mysql-relay-bin.log
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = exampledb

पहली पंक्ति में, हम स्लेव सर्वर को 2 की सर्वर आईडी असाइन करते हैं। अगली दो पंक्तियाँ रिले लॉग और प्रतिकृति लॉग फ़ाइलों के स्थान निर्दिष्ट करती हैं। अंतिम पंक्ति डेटाबेस को दोहराने के लिए निर्दिष्ट करती है।

MySQL सर्वर को पुनरारंभ करें और MySQL में लॉग इन करें

$ sudo service mysql restart
$ sudo mysql -u root -p

स्लेव पर एक खाली डेटाबेस बनाने के लिए निम्न कमांड चलाएँ।

mysql> CREATE DATABASE exampledb; 
mysql> USE exampledb;

स्लेव डेटाबेस को पॉप्युलेट करने के लिए मास्टर डेटाबेस से डेटा लोड करें

mysql> LOAD DATA FROM MASTER;

MySQL से बाहर निकलें।

बोनस पढ़ें :अनुसरण करने के लिए शीर्ष डेटाबेस ब्लॉग


4. प्रतिकृति प्रारंभ करें

जब आप MySQL में लॉग इन होते हैं, तो प्रतिकृति प्रक्रिया आरंभ करने के लिए निम्न कमांड चलाएँ। भागों को बोल्ड . में बदलें अपने मूल्यों के साथ।

mysql> SLAVE STOP;
mysql> CHANGE MASTER TO MASTER_HOST='54.24.32.12',
       MASTER_USER='slave_user', 
       MASTER_PASSWORD='<password>', 
       MASTER_LOG_FILE='mysql-bin.000001', 
       MASTER_LOG_POS=107;

MASTER_HOST - मास्टर का आईपी पता या होस्टनाम (54.24.32.12)।
MASTER_USER - दास उपयोगकर्ता जिसे हमने चरण # 2 में बनाया है।
MASTER_PASSWORD - दास उपयोगकर्ता का पासवर्ड जिसे हमने चरण #2 में रखा था।
MASTER_LOG_FILE - फ़ाइल MySQL ने चरण # 1 में वापस दी जब आप भागे
मास्टर स्थिति दिखाएं
MASTER_LOG_POS - चरण # 1 में SHOW MASTER STATUS चलाने पर MySQL ने वापस दी स्थिति

अंत में, हम दास को MySQL डेटाबेस की प्रतिकृति शुरू करने के लिए शुरू करते हैं।

mysql> START SLAVE;

उम्मीद है, यह लेख आपको MySQL डेटाबेस को दोहराने में मदद करेगा।

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL कमांड प्रॉम्प्ट के माध्यम से वर्डप्रेस एडमिन पासवर्ड कैसे रीसेट करें

  2. MySQL में संख्याओं की एक श्रृंखला उत्पन्न करना

  3. उपयोगकर्ता खाता प्रबंधन, भूमिकाएं, अनुमतियां, प्रमाणीकरण PHP और MySQL - भाग 6

  4. MySQL बनाम PHP में गणना करना

  5. MySQL में नया उपयोगकर्ता बनाएं और इसे एक डेटाबेस तक पूर्ण पहुंच प्रदान करें