MySQL डेटाबेस के लिए अलग-अलग स्थान?


18

क्या मैं डिस्क पर एक अलग स्थान पर एक विशिष्ट डेटाबेस को संग्रहीत करने के लिए MySQL को कॉन्फ़िगर कर सकता हूं?

मैं अभी भी किसी भी नए डेटाबेस को डिफ़ॉल्ट स्थान पर जाना चाहता हूं, लेकिन एक विशिष्ट डेटाबेस है जिसे मैं अपने ड्रॉपबॉक्स फ़ोल्डर में संग्रहीत करना चाहता हूं ताकि यह कुछ कंप्यूटरों के बीच समन्वयित रह सके।

मैं यह कैसे कर सकता हूँ?


1
संयोग से, यह संभव है कि यह दूसरी तरह से हो। डेटाबेस को वैसा ही छोड़ दें, और ड्रॉपबॉक्स से इसे सिमिलिंक करें । ड्रॉपबॉक्स वास्तव में सहानुभूति नहीं समझता है, और उन्हें सामान्य रूप से सिंक करेगा।
TRiG

जवाबों:


27

निःसंदेह तुमसे हो सकता है! आपको रूट परमिशन देना होगाLn मैनुअल पेज पढ़ें ।

MySQL डेटाबेस डेटा को अलग-अलग dirs में स्टोर करता है /var/lib/mysql। मुझे लगता है, पहले आपको एक डीआईआर बनाना था, जहां आप चयनित डेटाबेस की फाइलें डालना चाहते हैं। रूट रूट अनुमति, MySQL बहरा बंद करो:

# /etc/init.d/mysql stop

अपने डेटा को अपने नए फ़ोल्डर में कॉपी करें:

# cp /var/lib/mysql/DATABASENAME /path/to/new/database/dir

MySQL डेटा फ़ाइलों से अपनी पुरानी dir निकालें: ( चेतावनी! हमेशा SQL डंप पहले करें ) !!!

# rm -R /var/lib/mysql/DATABASENAME

MySQL डेटा dir पर वापस एक सिमलिंक बनाएं: ( ध्यान दें! पहले ln का मैन पेज पढ़ें !!! )

# ln -s /full/path/to/new/database/dir /var/lib/mysql/DATABASENAME

इसके बाद, आप तैयार हैं, अपना MySQL शुरू करें:

# /etc/init.d/mysql start

चेतावनी! यदि आपका नया डायर MySQL द्वारा नहीं लिखा और पढ़ा जा सकता है जो काम नहीं करेगा! उदाहरण के लिए, आम समस्या: आप अपने नए डेटा को अपने घर के फ़ोल्डर में रख देते हैं, आपके घर के फ़ोल्डर को दूसरों द्वारा संरक्षित किया जाता है (उदाहरण: drwxrwx --- you you yourdir)।

पूछो, अगर आप उस विधि के बारे में अन्य बातें जानना चाहते हैं!


2
धन्यवाद! मैं सिम्बलिंक पर भी विचार नहीं करता था, मैं बहुत सोच-विचार करने में व्यस्त था कि वह इसे mysql के अंदर कैसे कर सकता है।
कॉलिन

8
आप /etc/apparmor.d/*mysqldनई निर्देशिका को भी शामिल करना चाहते हैं। फिर sudo service apparmor reloadMySQL को रीस्टार्ट करने से पहले।
कीस कुक

3
@ कीसकुक अप्पमोर टिप के लिए बहुत बहुत धन्यवाद, जो मुझे पागल कर रहा था !! ऐसा लगता है कि इसे /etc/apparmor.d/localलगाना बेहतर है, हालांकि (मेरे इंस्टा पर पहले से ही usr.sbin.mysqld है), एक एकल जोड़ने से /full/path/to/new/database/dir/** rwk,यह मेरे लिए हो गया ...
Tobias J

बहुत बहुत धन्यवाद, यहाँ apparmor संपादन के कुछ विवरण भी उपयोगी है। मुझे डेटाबेस को एक ड्राइव पर रखने की कोशिश में धीमा कर दिया गया था जो बूट पर स्वचालित रूप से माउंट नहीं होता है और इसे एक्सेस करने के लिए रूट उपयोगकर्ता की आवश्यकता होती है। काम करने से मना कर दिया। इसfstab तरह संपादित किया गया कि बूटअप के बाद फाइल सिस्टम में यह ड्राइव माउंट हो गई, अब सब कुछ काम करता है।
इलायची

3

कृपया ध्यान रखें कि यदि आप उबंटू का उपयोग कर रहे हैं, तो आपको AppArmour कॉन्फ़िगरेशन फ़ाइल /etc/apparmor.d/usr.sbin.mysqld में एक प्रविष्टि जोड़ने की आवश्यकता है अन्यथा आप फ़ाइलों और फ़ोल्डर के बावजूद भी अनुमति त्रुटि लिखते रहेंगे अनुमतियाँ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.