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

Linux में डिफ़ॉल्ट MySQL/MariaDB डेटा निर्देशिका कैसे बदलें

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 सर्वर में डेटा निर्देशिका को कैसे बदला जाए।

क्या आपके पास इस लेख के बारे में कोई प्रश्न या टिप्पणी है? नीचे दिए गए फ़ॉर्म का उपयोग करके बेझिझक हमें बताएं - हम आपसे सुनकर हमेशा खुश होते हैं!


  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. PHP ईमेल सत्यापन लिंक के लिए सबसे आसान तरीका

  3. cPanel में MySQL डेटाबेस कैसे बनाएं और बनाए रखें?

  4. MySQL रूट पासवर्ड कैसे रीसेट करें

  5. डेटाबेस परिणाम को सरणी में बदलें