क्या मैं दोहरी बूट पर MySql डेटाबेस फ़ाइलों को विंडोज के साथ साझा कर सकता हूं?


12

मैं उबंटू और विंडोज (डुअल बूट) दोनों में उपयोग करना चाहूंगा मेरा MySql डेटाबेस फाइल NTFS विभाजन पर रहता है। क्या ये काम करेगा? कोई गोचर्स?


4
समुदाय के रिकॉर्ड के लिए: उपयोगकर्ता उबंटू लिनक्स और माइक्रोसॉफ्ट विंडोज के बीच MySQL डेटा प्रारूपों की संगतता के बारे में पूछ रहा है। उपयोगकर्ता इस बारे में सोच रहा है कि क्या MySQL के लिए उबंटू लिनक्स प्रारूप में संग्रहीत डेटा इस तरह से संगत है कि MySQL का Windows संस्करण डेटा संग्रहीत करता है ताकि डेटाबेस की जानकारी को Windows और MySQL दोनों में संपादित और पुनर्स्थापित किया जा सके।
थॉमस वार्ड

उ: मैंने इस सवाल का एक विस्तृत उत्तर यहां दिया है , यूनिक्स और लिनक्स स्टैकएक्सचेंज में
अण्डाकार दृश्य

जवाबों:


9

हां, यह काम करता है लेकिन कुछ विचित्रता के साथ। MySQL प्लेटफार्मों भर में एक ही fileformats का उपयोग करता है, इसलिए आपको डेटा निर्देशिका को साझा करने की आवश्यकता है। एक समस्या यह है कि डेटा डायरेक्टरी के लिए उबंटू में मालिक और समूह के रूप में mysql होना आवश्यक है। और विंडोज केस-असंवेदनशील है और लिनक्स केस-सेंसिटिव है, इसलिए सभी नामों को समान रखें: या तो पूरा नाम लोअरकेस या अपरकेस हो, लेकिन उन्हें मिक्स न करें।

आरंभ से अंत तक; यदि आपके पास पहले से ही चीजें हैं, तो आपको अपना सेटअप फिट करने के लिए कुछ ट्विकिंग की आवश्यकता हो सकती है:

  • दोनों सिस्टम पर MySQL को स्थापित और सेटअप करें।
  • अगर चल रहा है तो mysql सर्वर को बंद करें।
  • एक नया NTFS विभाजन बनाएं। उपकरण का नाम चिह्नित करें ( sdXNअब इसके लिए कॉल करें )।
  • उबंटू से नए विभाजन में mysql डेटा निर्देशिका को स्थानांतरित करें।

    mkdir /{mountpoint}/mysql_data
    sudo mv /var/lib/mysql /{mountpoint/mysql_data
    

    mvअनुमतियों का उपयोग करके बचाता है।

  • एक नई mysql निर्देशिका बनाएं

    sudo mkdir /var/lib/mysql
    
  • पर NTFS विभाजन माउंट करें /var/lib/mysql। NTFS विभाजन बनाते समय इसे डेविएनाम को बदल दें।

    sudo mount /dev/{sdXN} /var/lib/mysql -t ntfs-3g -o uid=mysql,gid=mysql,umask=0077
    
  • बूट पर ऑटोमाउंट करने के लिए विभाजन UUID और लोकेल ढूंढें और संपादित करें /etc/fstab

    ls -l /dev/disk/by-uuid
    locale -a
    sudo gedit /etc/fstab   
    UUID={number_found_with_the_ls-l} /var/lib/mysql ntfs-3g uid=mysql,gid=mysql,umask=0077,locale={your_locale}.utf8  0  0
    
  • /etc/mysql/my.cnfइंगित करने के लिए 'डेटादिर' पथ बदलें/var/lib/mysql/mysql_data

  • Mysql सर्वर को प्रारंभ करें और उसका परीक्षण करें।

  • विंडोज कॉन्फिग फाइल ( my.ini) को एडिट करें और 'डेटाडिर' X:/mysql_data( X:जहां आप इसे विंडोज के नीचे माउंट करते हैं) को सेट करें।

UF.org पर विषय 1442148 से संकलित ।

मुझे उबंटू संस्करण काम कर रहा था; इसलिए आंशिक रूप से अप्रशिक्षित हूं क्योंकि मेरे पास विंडोज नहीं है


बहुत अच्छा जवाब! बस दो टिप्पणियां: पहले से ही कई मिश्रित मामले नाम हैं और lower_case_table_names=1इसका उपयोग करना ठीक काम करता है। आपके माउंट विकल्पों के बिना मैं इस बग में चला गया (जो IMHO वास्तव में एक बग है)।
माआर्टिनस

"sudo mv / var / lib / mysql / dev / {sdXN} / mysql_data" एक त्रुटि देता है। देखें unix.stackexchange.com/questions/310433/…
अण्डाकार दृश्य

1

यदि आपने पहले केवल-विंडो परिवेश में एक Linux विभाजन जोड़ा है, तो आप डेटाबेस में केवल कुछ मामूली ट्विक्स के साथ उपयोग कर सकते हैं। यहां लंबा संस्करण , लघु संस्करण:

आपको mount --bind '/media/windows/ProgramData/MySQL/MySQL Server 5.5/data' /var/lib/mysqlस्टार्टअप पर चलने की आवश्यकता होगी (यह मानते हुए कि आप अपने विंडोज़ ड्राइव को /media/windowsfstab का उपयोग करके माउंट करते हैं )।

Innodb के लॉग साइज की जाँच करने के लिए, आपको ubuntu विभाजन के लिए innodb लॉग को स्थानांतरित करने की आवश्यकता होगी। में my.cnf, जोड़ें innodb_log_group_home_dir = /var/log/mysqlताकि लॉग mysql त्रुटि लॉग के बगल में जाएं।

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