Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

Ubuntu 16.04 पर MySQL डेटा निर्देशिका को किसी अन्य स्थान पर कैसे बदलें?

<घंटा/>

इस लेख में, हम सीखेंगे कि MySQL डेटा निर्देशिका को कैसे बदलें या MySQL डेटाबेस डेटा को नए स्थान पर स्थानांतरित करें, इस स्थिति का उपयोग तब किया जा सकता है जब डेटाबेस बहुत तेजी से बढ़ रहा हो, या कुछ सुरक्षा कारणों से हम डेटा निर्देशिका को स्थानांतरित करना चाहते हैं नए स्थान पर।

आवश्यकताएं

  • सूडो अनुमति के साथ एक गैर-रूट उपयोगकर्ता के साथ एक उबंटू मशीन।
  • MySQL स्थापित और काम कर रहा है।
  • एक नया वॉल्यूम या स्थान जहां हम डेटाबेस डेटा स्थान को स्थानांतरित करना चाहते हैं, नया स्थान /mnt/data_vol/MySQL होगा क्योंकि data_vol मशीन या सर्वर से जुड़ा नया वॉल्यूम है।

MySQL डेटा फ़ोल्डर स्थान बदलना

इससे पहले कि हम आगे बढ़ें, हम सबसे पहले डेटा निर्देशिका की वर्तमान स्थिति का पता लगाएंगे

$ mysql -u root -pOutput:पासवर्ड दर्ज करें:MySQL मॉनिटर में आपका स्वागत है। कमांड के साथ समाप्त होता है; या \g.आपका MySQL कनेक्शन आईडी 472सर्वर संस्करण है:5.6.30-0ubuntu0.14.04.1 (उबंटू)कॉपीराइट (सी) 2000, 2016, Oracle और/या इसके सहयोगी। सर्वाधिकार सुरक्षित।Oracle Oracle Corporation और/या उसके सहयोगियों का एक पंजीकृत ट्रेडमार्क है। अन्य नाम उनके संबंधित स्वामियों के ट्रेडमार्क हो सकते हैं। 'सहायता' टाइप करें। या '\h' मदद के लिए। वर्तमान इनपुट स्टेटमेंट को साफ़ करने के लिए '\c' टाइप करें।mysql>

जब MySQL के रूट पासवर्ड के लिए कहा जाए, तो कृपया पासवर्ड दर्ज करें। MySQL के लिए वर्तमान कार्यशील डेटा निर्देशिका जानने के लिए नीचे दिए गए आदेश को चलाएँ।

Mysql> @@datadir चुनें;आउटपुट:+---------------------+| @@दातादिर |+-----------------+| /var/lib/mysql/ |+-----------------+1 पंक्ति सेट में (0.00 सेकंड)

जैसा कि आउटपुट दिखाएगा कि MySQL डेटाबेस डेटा निर्देशिका के रूप में डिफ़ॉल्ट फ़ोल्डर के रूप में /var/lib/MySQL का उपयोग करता है। इससे पहले कि हम पहले कुछ भी संशोधित करें, हम डेटा की अखंडता की जांच करेंगे, हम MySQL को रोक देंगे और स्थिति की जांच करेंगे

$ sudo systemctl stop mysql

चूंकि systemctl सर्विस कमांड के लिए कुछ भी प्रदर्शित नहीं करेगा

$ sudo systemctl status mysqlOutput:mysql.service - MySQL समुदाय सर्वर लोडेड:लोडेड (/lib/systemd/system/mysql.service; सक्षम; विक्रेता प्रीसेट:सक्षम) सक्रिय:निष्क्रिय (मृत) सोम 2016-09 से- 12 13:57:43 IST; 1s पहले प्रक्रिया:17669 ExecStartPost=/usr/share/mysql/mysql-systemd-स्टार्ट पोस्ट (कोड=बाहर, स्थिति=0/सफलता) प्रक्रिया:17668 ExecStart=/usr/sbin/mysqld (कोड=बाहर, स्थिति=0 /सफलता) प्रक्रिया:17664 ExecStartPre=/usr/share/mysql/mysql-systemd-प्रारंभ पूर्व (कोड =बाहर, स्थिति =0 / सफलता) मुख्य पीआईडी:17668 (कोड =बाहर, स्थिति =0/सफलता) सितम्बर 12 13 :55:14 ubuntu-16 systemd[1]:MySQL कम्युनिटी सर्वर शुरू करना... 12 सितंबर 13:55:15 ubuntu-16 systemd[1]:MySQL कम्युनिटी सर्वर शुरू किया। 12 सितंबर 13:57:40 ubuntu-16 systemd [1]:मायएसक्यूएल कम्युनिटी सर्वर को रोकना...12 सितंबर 13:57:43 ubuntu-16 सिस्टमड[1]:मायएसक्यूएल कम्युनिटी सर्वर को बंद कर दिया।

एक बार, हम पुष्टि करते हैं कि MySQL बंद हो गया है, हम डेटा को नए स्थान पर ले जाएंगे। डेटा को स्थानांतरित करने के लिए, हम -a विकल्प के साथ Rsync का उपयोग करेंगे जो डेटा फ़ाइलों की अनुमति को सुरक्षित रखता है और -v जो वर्बोज़ आउटपुट दिखाता है।

डेटा को नए स्थान पर ले जाने के लिए पूरी कमांड नीचे दी गई है -

<पूर्व>$ rsync -av /var/lib/mysql /mnt/data_vol/OutPut:वृद्धिशील फ़ाइल सूची भेजनाmysql/mysql/auto.cnfmysql/debian-5.7.flagmysql/ib_buffer_poolmysql/ib_logfile0mysql/ib_logfile1mysql/ibdata1mysql/mysql/mysql/mysql /columns_priv.MYDmysql/mysql/columns_priv.MYImysql/mysql/columns_priv.frmmysql/mysql/db.MYDmysql/mysql/db.MYImysql/mysql/db.frmmysql/mysql/db.opt….mysql/sys/x@0024user_summary. frmmysql / sys / एक्स @ 0024user_summary_by_file_io.frmmysql / sys / एक्स @ 0024user_summary_by_file_io_type.frmmysql / sys / एक्स @ 0024user_summary_by_stages.frmmysql / sys / एक्स @ 0024user_summary_by_statement_latency.frmmysql / sys / एक्स @ 0024user_summary_by_statement_type.frmmysql / sys / एक्स @ 0024wait_classes_global_by_avg_latency.frmmysql / sys/x@0024wait_classes_global_by_latency.frmmysql/sys/x@0024waits_by_host_by_latency.frmmysqlsys//x@0024waits_by_user_by_latency.frmmysql/sys/x@0024waits_global_by_latency.frmmysql/sys/x@0024waits_by_host_by_latency

rsync के बाद, सफलतापूर्वक डेटा फ़ोल्डर को नए स्थान पर ले जाएँ। सुरक्षा कारणों से हम डेटा फ़ोल्डर को तब तक रखेंगे जब तक यह पुष्टि न हो जाए कि डेटा नए स्थान पर है, हम वर्तमान डेटा निर्देशिका का नाम /var/lib/mysql से /var/lib/mysql_backup कर देंगे। वर्तमान डेटा निर्देशिका को बदलने का आदेश नीचे दिया गया है।

वर्तमान डेटा निर्देशिका को बदलने का आदेश नीचे दिया गया है -

$ sudo mv /var/lib/mysql /var/lib/mysql_backup

अब, हम डिफ़ॉल्ट डेटा निर्देशिका को बदल देंगे, बदलने के लिए हमारे पास बहुत सारे तरीके हैं, लेकिन हम mysqld.cnf फ़ाइल को संपादित करेंगे जो /etc/mysql/mysql.conf.d/mysqld.cnf.

Mysqld.cnf को संपादित करने के लिए, नीचे कमांड है

$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnfOutput:[mysqld_safe]socket =/var/run/mysqld/mysqld.socknice =0[mysqld]## * बेसिक सेटिंग्स#user =mysqlpid -फाइल =/var/run/mysqld/mysqld.pidsocket =/var/run/mysqld/mysqld.sockport =3306basedir =/usrdatadir =/mnt/data_vol/mysql/tmpdir =/tmplc-messages-dir =/usr/share /mysqlskip-external-locking

Apparmor उपनाम सेटिंग बदलना

साथ ही, हमें /etc/apparmor.d/tunables/alias

. को संपादित करने की आवश्यकता है

फ़ाइल के निचले भाग में, हमें उपनाम नियमों में निम्नलिखित पंक्तियों को जोड़ने की आवश्यकता है।

$ sudo vi /etc/apparmor.d/tunables/aliasOutput:# -------------------------------- -----------------------------------## कॉपीराइट (सी) 2010 कैननिकल लिमिटेड ## यह कार्यक्रम मुफ़्त है सॉफ्टवेयर; आप इसे फिर से वितरित कर सकते हैं और/या# फ्री सॉफ्टवेयर फाउंडेशन द्वारा प्रकाशित जीएनयू जनरल पब्लिक# लाइसेंस के संस्करण 2 की शर्तों के तहत इसे संशोधित कर सकते हैं।## ------------------ -------------------------------------------------# उपनाम नियमों का उपयोग पथों को फिर से लिखने के लिए किया जा सकता है और चर # संकल्प के बाद किया जाता है। उदाहरण के लिए, यदि '/usr' हटाने योग्य मीडिया पर है:# उपनाम /usr/ -> /mnt/usr/,## या यदि mysql डेटाबेस /home में संग्रहीत हैं:# उपनाम /var/lib/mysql/ -> / होम/mysql/, उपनाम /var/lib/mysql/ -> /mnt/data_vol/mysql

एक बार फ़ाइल संपादित हो जाने के बाद, हमें एपर्मर को पुनः आरंभ करने की आवश्यकता है।

नीचे एपर्मर को पुनः आरंभ करने का आदेश दिया गया है।

जैसा कि हमने डिफ़ॉल्ट डेटा निर्देशिका को बदल दिया है, हमें नीचे दिए गए आदेश को चलाने की आवश्यकता है जो स्क्रिप्ट वातावरण को पारित करने के लिए न्यूनतम निर्देशिका फ़ोल्डर संरचना बनाएगा।

$ sudo mkdir /var/lib/mysql/mysql –p

अब हम mysql सेवाओं को फिर से शुरू करेंगे।

$ sudo systemctl start mysql

अब हम नीचे दिए गए आदेश के साथ MySQL सेवाओं की स्थिति की जांच करेंगे

$ sudo systemctl status mysqlOutput:mysql.service - MySQL कम्युनिटी सर्वर लोडेड:लोडेड (/lib/systemd/system/mysql.service; इनेबल्ड; वेंडर प्रीसेट:इनेबल्ड) एक्टिव:सोम 2016-09 से सक्रिय (चल रहा है) 12 14:17:27 IST; 23s पहले प्रक्रिया:18481 ExecStartPost=/usr/share/mysql/mysql-systemd-स्टार्ट पोस्ट (कोड=बाहर, स्थिति=0/SUCC प्रक्रिया:18477 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (कोड) =बाहर, स्थिति =0/सफल मुख्य पीआईडी:18480 (mysqld) कार्य:28 (सीमा:512) मेमोरी:137.3एम सीपीयू:329एमएससीग्रुप:/system.slice/mysql.service └─18480 /usr/sbin/mysqldSep 12 14 :17:26 ubuntu-16 systemd[1]:MySQL कम्युनिटी सर्वर शुरू करना... 12 सितंबर 14:17:27 ubuntu-16 systemd[1]:MySQL कम्युनिटी सर्वर शुरू किया।

यह सुनिश्चित करने के लिए कि नई डेटा निर्देशिका बदली गई है, हम निम्न आदेश चलाएंगे

$ mysql -uroot -pOutput:पासवर्ड दर्ज करें:MySQL मॉनिटर में आपका स्वागत है। कमांड के साथ समाप्त होता है; या \g.आपका MySQL कनेक्शन आईडी 3 सर्वर संस्करण है:5.7.13-0ubuntu0.16.04.2 (उबंटू) कॉपीराइट (सी) 2000, 2016, ओरेकल और/या इसके सहयोगी। सर्वाधिकार सुरक्षित।Oracle Oracle Corporation और/या उसके सहयोगियों का एक पंजीकृत ट्रेडमार्क है। अन्य नाम उनके संबंधित स्वामियों के ट्रेडमार्क हो सकते हैं। 'सहायता' टाइप करें। या '\h' मदद के लिए। वर्तमान इनपुट स्टेटमेंट को साफ़ करने के लिए '\c' टाइप करें।mysql> @@datadir+--------------------------+| . चुनें @@दातादिर |+--------------------------+| /mnt/data_vol/mysql/ |+-----------------+1 पंक्ति सेट में (0.00 सेकंड)mysql>

एक बार जब हम पुष्टि कर लेते हैं कि डेटा निर्देशिका बदल गई है, तो हम डिफ़ॉल्ट डेटा निर्देशिका को हटा देंगे, जो /var/lib/mysql_backup पर, पुराने डेटाबेस निर्देशिका को हटाने का आदेश है।

$ sudo rm –rf /var/lib/mysql_backup
<ब्लॉकक्वॉट>

उपरोक्त कॉन्फ़िगरेशन और चरणों में, हमने MySQL डेटा निर्देशिका को नए स्थान पर स्थानांतरित करना सीखा है जो हमें किसी भिन्न स्थान पर अधिक डेटा सुरक्षित करने या संग्रहीत करने में मदद करेगा।


  1. उबंटू में स्क्रीन रेज़ोल्यूशन कैसे बदलें

    हालाँकि यह एक दुर्लभ समस्या है, लेकिन आपके डेस्कटॉप के लिए गलत रिज़ॉल्यूशन पर अटक जाना भी संभव है। ऐसा इसलिए हो सकता है, उदाहरण के लिए, आपके GPU के ड्राइवरों में एक बग आपके मॉनिटर की सही पहचान नहीं कर पाता है। इसलिए यदि आपका डेस्कटॉप आपके मॉनिटर के केंद्र में एक थंबनेल जैसा दिखता है, या आपको सब कुछ

  1. Windows 10 में डिफ़ॉल्ट इंस्टॉलेशन डायरेक्टरी को कैसे बदलें

    जब भी आप कोई नया प्रोग्राम या एप्लिकेशन इंस्टॉल करते हैं, तो यह डिफ़ॉल्ट रूप से आपके सिस्टम आर्किटेक्चर या आपके द्वारा इंस्टॉल किए जा रहे प्रोग्राम के आधार पर C:\Program Files या C:\Program Files (x86) डायरेक्टरी में इंस्टॉल हो जाता है। लेकिन यदि आपके पास डिस्क स्थान समाप्त हो रहा है, तो आप प्रोग्रा

  1. Excel में किसी अन्य स्थान पर कॉपी करने के लिए उन्नत फ़िल्टर कैसे लागू करें

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