CentOS/RHEL 7 सर्वर पर LAMP स्टैक के घटकों को स्थापित करने के बाद, कुछ चीजें हैं जो आप करना चाह सकते हैं।
उनमें से कुछ का संबंध Apache और MySQL / MariaDB की सुरक्षा बढ़ाने से है, जबकि अन्य हमारे सेटअप या आवश्यकताओं के अनुसार लागू हो सकते हैं या नहीं।
उदाहरण के लिए, डेटाबेस सर्वर के अपेक्षित उपयोग के आधार पर, हम डिफ़ॉल्ट डेटा . को बदलना चाह सकते हैं निर्देशिका (/var/lib/mysql
) एक अलग स्थान पर। यह वह स्थिति है जब उच्च उपयोग के कारण ऐसी निर्देशिका के बढ़ने की उम्मीद है।
अन्यथा, फाइल सिस्टम जहां /var
संग्रहीत है एक बिंदु पर ढह सकता है जिससे पूरा सिस्टम विफल हो सकता है। एक अन्य परिदृश्य जहां डिफ़ॉल्ट निर्देशिका को बदलना तब होता है जब हमारे पास एक समर्पित नेटवर्क शेयर होता है जिसे हम अपने वास्तविक डेटा को संग्रहीत करने के लिए उपयोग करना चाहते हैं।
इस कारण से, इस लेख में, हम समझाएंगे कि डिफ़ॉल्ट MySQL / MariaDB डेटा निर्देशिका को CentOS/RHEL 7 सर्वर और उबंटू/डेबियन वितरण पर एक अलग पथ में कैसे बदला जाए।
हालांकि हम MariaDB . का उपयोग करेंगे , व्याख्या की गई अवधारणाएं और इस लेख में उठाए गए कदम MySQL . दोनों पर लागू होते हैं और मारियाडीबी . को जब तक अन्यथा उल्लेख न किया गया हो।
डिफ़ॉल्ट MySQL/MariaDB डेटा निर्देशिका को बदलना
नोट :हम यह मानने जा रहे हैं कि हमारी नई डेटा निर्देशिका /mnt/mysql-data
. है . यह ध्यान रखना महत्वपूर्ण है कि यह निर्देशिका mysql:mysql
. के स्वामित्व में होनी चाहिए ।
# mkdir /mnt/mysql-data # chown -R mysql:mysql /mnt/mysql-data
आपकी सुविधा के लिए, हमने इस प्रक्रिया को 5 आसान-से-पालन चरणों में विभाजित किया है:
चरण 1:वर्तमान MySQL डेटा निर्देशिका की पहचान करें
शुरू करने के लिए, निम्न आदेश का उपयोग करके वर्तमान डेटा निर्देशिका की पहचान करना योग्य और अच्छा है। यह मत समझो कि यह अभी भी है /var/lib/mysql
क्योंकि इसे अतीत में बदला जा सकता था।
# mysql -u root -p -e "SELECT @@datadir;"
आपके द्वारा MySQL पासवर्ड दर्ज करने के बाद, आउटपुट समान होना चाहिए।
चरण 2:MySQL डेटा निर्देशिका को एक नए स्थान पर कॉपी करें
डेटा भ्रष्टाचार से बचने के लिए, यदि सेवा वर्तमान में चल रही है तो आगे बढ़ने से पहले उसे रोक दें। सिस्टमड . का प्रयोग करें ऐसा करने के लिए जाने-माने आदेश:
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
यदि सेवा को नीचे लाया गया है, तो अंतिम कमांड का आउटपुट इस प्रकार होना चाहिए:
फिर /var/lib/mysql
. की सामग्री को पुनरावर्ती रूप से कॉपी करें करने के लिए /mnt/mysql-data
मूल अनुमतियों और टाइमस्टैम्प को संरक्षित करना:
# cp -R -p /var/lib/mysql/* /mnt/mysql-data
चरण 3:एक नई MySQL डेटा निर्देशिका कॉन्फ़िगर करें
कॉन्फ़िगरेशन फ़ाइल संपादित करें (my.cnf
) नई डेटा निर्देशिका को इंगित करने के लिए (/mnt/mysql-data
इस मामले में)।
# vi /etc/my.cnf OR # vi /etc/mysql/my.cnf
[mysqld]
का पता लगाएँ और [client]
अनुभाग और निम्नलिखित परिवर्तन करें:
Under [mysqld]: datadir=/mnt/mysql-data socket=/mnt/mysql-data/mysql.sock Under [client]: port=3306 socket=/mnt/mysql-data/mysql.sock
परिवर्तनों को सहेजें और फिर अगले चरण के साथ आगे बढ़ें।
चरण 4:SELinux सुरक्षा प्रसंग को डेटा निर्देशिका पर सेट करें
यह चरण केवल RHEL/CentOS . पर लागू होता है और इसके डेरिवेटिव।
SELinux सुरक्षा प्रसंग को /mnt/mysql-data
. में जोड़ें मारियाडीबी को पुनः आरंभ करने से पहले।
# semanage fcontext -a -t mysqld_db_t "/mnt/mysql-data(/.*)?" # restorecon -R /mnt/mysql-data
इसके बाद MySQL सर्विस को रीस्टार्ट करें।
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
अब, चरण 1 . के समान कमांड का उपयोग करें नई डेटा निर्देशिका के स्थान को सत्यापित करने के लिए:
# mysql -u root -p -e "SELECT @@datadir;"
चरण 5:डेटा निर्देशिका की पुष्टि करने के लिए MySQL डेटाबेस बनाएं
मारियाडीबी में लॉगिन करें, एक नया डेटाबेस बनाएं और फिर /mnt/mysql-data
. की जांच करें :
# mysql -u root -p -e "CREATE DATABASE tecmint;"
बधाई हो! आपने MySQL या MariaDB के लिए डेटा निर्देशिका को सफलतापूर्वक बदल दिया है।
सारांश
इस पोस्ट में, हमने चर्चा की है कि CentOS/RHEL 7 और Ubuntu/Debian वितरण पर चलने वाले MySQL या MariaDB सर्वर में डेटा निर्देशिका को कैसे बदला जाए।
क्या आपके पास इस लेख के बारे में कोई प्रश्न या टिप्पणी है? नीचे दिए गए फ़ॉर्म का उपयोग करके बेझिझक हमें बताएं - हम आपसे सुनकर हमेशा खुश होते हैं!