2010-05-19 22 views
8

में डीबी आयात करते समय केस संवेदनशीलता बनाए रखें मेरे पास एक लिनक्स मशीन पर एक MYSQL डेटाबेस से निर्यात है, हालांकि उस डेटाबेस को विंडोज़ पर MYSQL में आयात करते समय ऊंट के सभी टेबल नाम अब सभी कम मामले हैं। एसक्यूएल डंप में इसका सही मामला है लेकिन इन्हें हटाने के लिए phpmyadmin seams के माध्यम से आयात करना।विंडोज

मैं इसे कैसे आयात और केस रख सकता हूं?

उत्तर

9

विंडोज़ में केस भेदभाव की अनुमति देने के लिए MySQL के लिए एक सेटिंग है।

lower_case_table_names=2 

फिर mysql पुनः आरंभ: आप my.cnf फ़ाइल को संपादित और सेटिंग को बदलने की जरूरत।

अन्यथा, यह phpmyadmin बदलते मामले का मामला हो सकता है जिस तरह से यह सर्वर से लिनक्स-टू-विंडोज समस्या के बजाय सर्वर से पूछताछ करता है। क्या आपने SQLyog जैसे किसी अन्य mysql प्रबंधक का उपयोग करके एसक्यूएल डंप आयात करने का प्रयास किया है? (उपकरण -> एसक्यूएल डंप से पुनर्स्थापित करें ...)

+0

धन्यवाद मदद के लिए, लेकिन फिर भी है कि आदेश की स्थापना के साथ mysql को पुन: प्रारंभ और उसके बाद अभी भी डेटा आयात करने के लिए कमांड लाइन का उपयोग कर (जो आरं में नहीं था, [mysqld] के बाद इसे जोड़ने के लिए किया था), टेबल नाम केस नहीं रखा था। – user103219

+0

यह हो सकता है कि वैरिएबल को 2 की बजाय 0 की आवश्यकता हो, जैसा कि एटोनवेल सुझाव देता है, हालांकि संदर्भ मैनुअल यह कहता है: "* आपको इस चर को 0 पर सेट नहीं करना चाहिए यदि आप एक ऐसे सिस्टम पर MySQL चला रहे हैं जिसमें केस- असंवेदनशील फ़ाइल नाम (जैसे कि विंडोज या मैक ओएस एक्स)। यदि आप इस चर को 0 -lower-case-table-names = 0 के साथ केस-असंवेदनशील फ़ाइल सिस्टम पर बल देते हैं और विभिन्न लेटरकेस का उपयोग करके MyISAM टैबलेटनाम तक पहुंचते हैं, तो इंडेक्स भ्रष्टाचार हो सकता है परिणाम।* " – JYelton

2

यह शायद MySQL संदर्भ मैनुअल से निम्न पृष्ठों पर पढ़ने लायक है: http://dev.mysql.com/doc/refman/5.5/en/identifier-case-sensitivity.html

उस आधार पर, मैं आप 0 के 2 सेट करने के लिए, की जरूरत नहीं है लगता है , जो यह सुनिश्चित करेगा कि स्कीमा आपके डीडीएल में परिभाषित वही केस का उपयोग करके संग्रहीत किया जाता है।

lower_case_table_names=0