से अलग निर्यातित ब्लॉब डेटा मैं अपने बहुत बड़े MySQL डेटाबेस (1.6 जीबी - ज्यादातर बीएलओबी) को निर्यात करने और नए सर्वर में आयात करने का प्रयास कर रहा हूं। मैंने अधिकांश समस्याओं के माध्यम से काम किया है और अंत में बिना किसी त्रुटि के आयात को पूरा किया है। MySQL क्वेरी ब्राउज़र का उपयोग करके मैंने छवियों के बीएलओबी के साथ एक टेबल पर एक क्वेरी चलाई और एक डिस्क को सहेजा (क्वेरी ब्राउज़र में सेव आइकन का उपयोग करके)। जब मैंने फ़ाइल खोलने की कोशिश की तो मुझे एक "अमान्य छवि प्रारूप" त्रुटि मिली। उह ओह।डीबी डेटा
क्वेरी ब्राउज़र का उपयोग करके मैंने स्रोत डेटाबेस और नए, हाल ही में आयातित डेटाबेस पर मूल्य का निरीक्षण किया। मान अलग हैं, मुझे लगता है। यह सिर्फ मुद्दों या कुछ एन्कोडिंग हो सकता है। यहाँ मैं क्या देख रहा है:
स्रोत (मान्य डेटा) सर्वर:
FF D8 FF E0 00 10 4A 46 49 46 00 01 01 01 00 60
00 60 00 00 FF DB 00 43 00 08 06 06 07 06 05 08
and so on...
नए सर्वर:
C3 BF C3 98 C3 BF C3 A0 00 10 4A 46 49 46 00 01
01 01 00 60 00 60 00 00 C3 BF C3 9B 00 43 00 08
and so on...
इस उदाहरण यह मेरे नौसिखिया आंख प्रतीत होता है में अतिरिक्त के 3 बाइट्स देखते हैं कि "नए" सर्वर पर डेटा के सामने डेटा।
मैंने फिर 010 editor का उपयोग कर एसक्यूएल डंप फ़ाइल की जांच की। मैं इस विशिष्ट उदाहरण के लिए लाइन मिल गया है और यहाँ मैं क्या देख रहा है:
FF D8 FF E0 5C 30 10 4A 46 49 46 5C 30 01 01 01
5C 30 60 5C 30 60 5C 30 5C 30 FF DB 5C 30 43 5C
30 08 06 06 07 06 05 08 and so on...
अब मैं मेरे सिर पर जिस तरह से कर रहा हूँ। मैं पैटर्न देखता हूं, मुझे लगता है कि हेक्स जोड़ी 5 सी 30 00 जैसा ही प्रतीत होता है लेकिन मुझे समझ में नहीं आता है। इस बिंदु पर मेरे पास एक स्रोत सर्वर है जो मिटाए जाने वाला है और मुझे डरने वाला एक नया भ्रष्ट डेटा इसमें आयात किया गया है। मुझे आशा है कि यह किसी प्रकार का एन्कोडिंग मुद्दा है जिसे MySQL में वैश्विक चर सेट करके हल किया जा सकता है लेकिन मुझे वास्तव में पता नहीं है।
मुझे यह भी उल्लेख करना चाहिए कि जब मैं स्रोत (काम कर रहे) सर्वर और नए (दूषित) सर्वर से फ़ाइलों को सहेजता हूं तो भ्रष्ट फ़ाइल के लिए फ़ाइलों का आकार लगभग 40% बड़ा होता है।
मैं दोनों सर्वर पर वर्ण सेट चर जाँच:
SHOW VARIABLES LIKE '%char%'
स्रोत सर्वर:
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
नए सर्वर:
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
वे एक ही हैं।
FYI 1.6 जीबी डेटाबेस मामले में सिर्फ एक बच्चा है:
सबसे अच्छा समाधान जब ब्लॉब क्षेत्रों के निर्यात
--hex-blob
विकल्प का उपयोग करने, जो की तरह कुछ में परिणाम होगा हो सकता है! – briantylerहेक्स स्ट्रिंग '5 सी 30'' \ 0' है, इसलिए यह संपादक के साथ कुछ अजीब व्यवहार की तरह दिखता है, या एसक्यूएल डंप की सामग्री किसी भी तरह से छेड़छाड़/टूट गई है। – cmbuckley