কীভাবে মাইএসকিউএল সেট করা যায় (মাস্টার-স্লেভ) আরএইচইএল, সেন্টোস, ফেডোরায় প্রতিলিপি


নিম্নলিখিত টিউটোরিয়ালটি আপনাকে আরএইচইএল 6.3/6.2/6.1/6/5.8, সেন্টোস 6.3/6.2/6.1/6/5.8 এবং ফেডোরা 17 তে মাইএসকিউএল (মাস্টার-স্লেভ) প্রতিলিপি সেটআপ করার জন্য একটি সাধারণ ধাপে ধাপে গাইড সরবরাহ করার লক্ষ্যে রয়েছে t Latest 16,15,14,13,12 সর্বশেষ মাইএসকিউএল সংস্করণ ব্যবহার করে। এই গাইডটি CentOS 6.3 অপারেটিং সিস্টেমের জন্য বিশেষভাবে রচিত, তবে মাইএসকিউএল 5.x সহ লিনাক্স বিতরণের পুরানো সংস্করণেও কাজ করে

মাইএসকিউএল প্রতিলিপিটি ডেটা সুরক্ষা, ফেল-ওভার সলিউশন, স্লেভ থেকে ডাটাবেস ব্যাকআপ, অ্যানালিটিক্স ইত্যাদির ক্ষেত্রে খুব দরকারী is আপনার দৃশ্যে এটি অন্যরকম হবে।

  1. ফেডোরা 17
  2. এর মতো ওয়ার্কিং লিনাক্স ওএস
  3. মাস্টার এবং স্লেভ হ'ল সেন্টোস 6.3 লিনাক্স সার্ভার
  4. মাস্টার আইপি ঠিকানা: 192.168.1.1
  5. স্লেভ আইপি ঠিকানা: 192.168.1.2
  6. মাস্টার এবং স্লেভ একই ল্যান নেটওয়ার্কে রয়েছে
  7. মাস্টার এবং স্লেভের মাইএসকিউএল সংস্করণ ইনস্টল করা আছে
  8. মাস্টার 3306 পোর্টে দূরবর্তী মাইএসকিউএল সংযোগের অনুমতি দিন

আমাদের দুটি সার্ভার রয়েছে, একটি হলেন আইপি (192.168.1.1) সহ মাস্টার এবং অন্যটি (192.168.1.2) হিসাবে স্লেভ। আপনার পক্ষে জিনিসগুলি সহজ করার জন্য আমরা সেটআপ প্রক্রিয়াটি দুটি পর্যায়ে বিভক্ত করেছি, প্রথম ধাপে আমরা মাস্টার সার্ভার এবং স্লোভ সার্ভারের সাথে দ্বিতীয় পর্যায়ে কনফিগার করব। আসুন প্রতিলিপি সেটআপ প্রক্রিয়া শুরু করি।

প্রথম ধাপ: প্রতিরূপের জন্য মাস্টার সার্ভার (192.168.1.1) কনফিগার করুন

প্রথম ধাপে, আমরা মাইএসকিউএল এর ইনস্টলেশন, প্রতিলিপি সেট আপ এবং তারপরে প্রতিলিপিটি যাচাই করে দেখব।

প্রথমে, মাইএসকিউএল ইনস্টলেশনটি YUM কমান্ড ব্যবহার করে এগিয়ে যান। আপনার যদি ইতিমধ্যে মাইএসকিউএল ইনস্টলেশন থাকে তবে আপনি এই পদক্ষেপটি এড়িয়ে যেতে পারেন।

# yum install mysql-server mysql

VI ম সম্পাদক সহ my.cnf কনফিগারেশন ফাইলটি খুলুন।

# vi /etc/my.cnf

[মাইএসকিএলডি] বিভাগের অধীনে নিম্নলিখিত এন্ট্রিগুলি যুক্ত করুন এবং স্লেভের প্রতিলিপি করতে চান এমন ডাটাবেসের নামের সাথে টেকমিন্টটি প্রতিস্থাপন করতে ভুলবেন না।

server-id = 1
binlog-do-db=tecmint
relay-log = /var/lib/mysql/mysql-relay-bin
relay-log-index = /var/lib/mysql/mysql-relay-bin.index
log-error = /var/lib/mysql/mysql.err
master-info-file = /var/lib/mysql/mysql-master.info
relay-log-info-file = /var/lib/mysql/mysql-relay-log.info
log-bin = /var/lib/mysql/mysql-bin

মাইএসকিউএল পরিষেবাটি পুনরায় চালু করুন।

# /etc/init.d/mysqld restart

মাইএসকিউএলকে মূল ব্যবহারকারী হিসাবে লগইন করুন এবং স্লেভ ব্যবহারকারী তৈরি করুন এবং প্রতিরূপের জন্য সুযোগগুলি দিন। ব্যবহারকারীর সাথে স্লেভ_উসার এবং পাসওয়ার্ড সহ আপনার_পাসওয়ার্ড প্রতিস্থাপন করুন।

# mysql -u root -p
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'your_password';
mysql> FLUSH PRIVILEGES;
mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;

+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 11128001 | tecmint		 |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

mysql> quit;

দয়া করে ফাইল (mysql-bin.000003) এবং অবস্থান (11128001) নম্বর লিখুন, আমাদের স্লেভ সার্ভারে পরে এই সংখ্যাগুলি প্রয়োজন। এরপরে mysqldump কমান্ডের সাহায্যে সমস্ত ডাটাবেস এবং মাস্টার ডাটাবেস তথ্য রফতানি করতে ডাটাবেসে READ LOCK প্রয়োগ করুন।

#  mysqldump -u root -p --all-databases --master-data > /root/dbdump.db

একবার আপনি সমস্ত ডেটাবেস ডাম্প করে নিলে, এখন আবার রুট ব্যবহারকারী হিসাবে মাইএসকিএল এবং সংযুক্ত টেবিলগুলি আনলক করুন।

mysql> UNLOCK TABLES;
mysql> quit;

এসসিপি কমান্ড ব্যবহার করে স্লেভ সার্ভারে (192.168.1.2) ডাটাবেস ডাম্প ফাইল আপলোড করুন।

scp /root/dbdump.db [email :/root/

এটিই আমরা সফলভাবে মাস্টার সার্ভারটি কনফিগার করেছি, আসুন দ্বিতীয় ধাপে বিভাগে যান।

দ্বিতীয় ধাপ: প্রতিরূপের জন্য স্লেভ সার্ভার (192.168.1.2) কনফিগার করুন

দ্বিতীয় ধাপে, আমরা মাইএসকিউএল ইনস্টল করি, প্রতিলিপি সেটআপ করি এবং তারপরে প্রতিলিপিটি যাচাই করি।

আপনার যদি মাইএসকিউএল ইনস্টল না থাকে তবে YUM কমান্ড ব্যবহার করে এটি ইনস্টল করুন।

# yum install mysql-server mysql

VI ম সম্পাদক সহ my.cnf কনফিগারেশন ফাইলটি খুলুন।

# vi /etc/my.cnf

[মাইএসকিএলডি] বিভাগের অধীনে নিম্নলিখিত এন্ট্রিগুলি যুক্ত করুন এবং মাস্টার সার্ভারের আইপি ঠিকানা, ডাটাবেস নামের সাথে টেকমিন্ট ইত্যাদি প্রতিস্থাপন করতে ভুলবেন না যে আপনি মাস্টারের সাথে প্রতিলিপি করতে চান।

server-id = 2
master-host=192.168.1.1
master-connect-retry=60
master-user=slave_user
master-password=yourpassword
replicate-do-db=tecmint
relay-log = /var/lib/mysql/mysql-relay-bin
relay-log-index = /var/lib/mysql/mysql-relay-bin.index
log-error = /var/lib/mysql/mysql.err
master-info-file = /var/lib/mysql/mysql-master.info
relay-log-info-file = /var/lib/mysql/mysql-relay-log.info
log-bin = /var/lib/mysql/mysql-bin

এখন আমরা পূর্ববর্তী কমান্ডে রফতানি করা ডাম্প ফাইলটি আমদানি করুন এবং মাইএসকিউএল পরিষেবাটি পুনরায় চালু করুন।

# mysql -u root -p < /root/dbdump.db
# /etc/init.d/mysqld restart

মূল ব্যবহারকারী হিসাবে মাইএসকিউএল এ লগইন করুন এবং ক্রীতদাস বন্ধ করুন stop তারপরে দাসকে মাস্টার লগ ফাইলটি কোথায় সন্ধান করতে হবে তা বলুন, আমরা মাস্টার স্ট্যাটাসের সাথে মাস্টার লিখে রেখেছি; ফাইল (mysql-bin.000003) এবং অবস্থান (11128001) সংখ্যা হিসাবে কমান্ড। আপনাকে অবশ্যই 192.168.1.1 কে মাস্টার সার্ভারের আইপি ঠিকানায় পরিবর্তন করতে হবে এবং সেই অনুসারে ব্যবহারকারী এবং পাসওয়ার্ড পরিবর্তন করতে হবে।

# mysql -u root -p
mysql> slave stop;
mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.1', MASTER_USER='slave_user', MASTER_PASSWORD='yourpassword', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=11128001;
mysql> slave start;
mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.1.1
                  Master_User: slave_user
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000003
          Read_Master_Log_Pos: 12345100
               Relay_Log_File: mysql-relay-bin.000002
                Relay_Log_Pos: 11381900
        Relay_Master_Log_File: mysql-bin.000003
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: tecmint
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 12345100
              Relay_Log_Space: 11382055
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
1 row in set (0.00 sec)

মাস্টার এবং স্লেভ সার্ভারে মাইএসকিউএল প্রতিলিপি যাচাই করা হচ্ছে

প্রতিলিপি নিখুঁতভাবে কাজ করছে তা জানা আমাদের পক্ষে খুব গুরুত্বপূর্ণ। মাস্টার সার্ভারে টেবিল তৈরি করুন এবং এতে কিছু মান সন্নিবেশ করুন।

mysql> create database tecmint;
mysql> use tecmint;
mysql> CREATE TABLE employee (c int);
mysql> INSERT INTO employee (c) VALUES (1);
mysql> SELECT * FROM employee;
+------+
|  c  |
+------+
|  1  |
+------+
1 row in set (0.00 sec)

স্ল্যাভ যাচাই করা, একই কমান্ড চালিয়ে, এটি দাসের মধ্যেও একই মানগুলি ফিরিয়ে দেবে।

mysql> use tecmint;
mysql> SELECT * FROM employee;
+------+
|  c  |
+------+
|  1  |
+------+
1 row in set (0.00 sec)

এটি হ'ল শেষ পর্যন্ত আপনি কয়েকটি সাধারণ পদক্ষেপে মাইএসকিউএল প্রতিলিপিটি কনফিগার করেছেন। আরও তথ্য মাইএসকিউএল প্রতিলিপি গাইড পাওয়া যাবে।