2013-06-03 3 views
7

मैं phpMyAdmin 4.0.2 का उपयोग कर रहा हूं और ऐसा लगता है कि पूरे डीबी पर निर्यात करते समय, डिफ़ॉल्ट रूप से यह निर्यात एसक्यूएल की शुरुआत में "डेटा सेट करें यदि मौजूदा नहीं है" कथन जोड़ता है।phpMyAdmin 4 में निर्यात से "डेटा सेट नहीं करें" कथन कैसे निकालें?

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

+1

क्या यह वहां पहुंचने के लिए चोट पहुंचाता है? आपको इसकी आवश्यकता क्यों है? –

+3

ऐसा इसलिए है क्योंकि बड़े डेटाबेस के लिए मैं इसे अपने देव स्थानीय डीबी से फ़ाइल में निर्यात करना चाहता हूं और सर्वर डीबी पर आयात करना चाहता हूं। जब स्थानीय डेटाबेस नाम सर्वर पर डेटाबेस नाम से अलग होता है और मैं सर्वर पर फ़ाइल आयात करता हूं तो वह उसी डीबी को बनाने का प्रयास करते समय त्रुटि उत्पन्न करेगा, लेकिन अलग-अलग नाम के साथ ... यदि यह समझ में आता है। – Vlad

+0

बस phpMyAdmin changelog (http://www.phpmyadmin.net/documentation/changelog.php) को देखकर और ऐसा लगता है कि यह व्यवहार 24 मई 2013 को संस्करण 4.0.2.0 में पेश किया गया था। शुक्र है (क्योंकि यह मुझे भी कारण दे रहा था स्टेजिंग और लाइव डेटाबेस नामों से अलग स्थानीय डेटाबेस नामों का उपयोग करते समय अनावश्यक परेशानी), ऐसा लगता है कि उन्होंने इसे 4 अगस्त 2013 को संस्करण 4.0.5.0 में फिर से बदल दिया, और इसे एक विकल्प (डिफ़ॉल्ट रूप से गलत) बनाया। – Stephen

उत्तर

2

यह व्यवहार डिफ़ॉल्ट रूप से संस्करण 3 में नहीं हुआ था। एक त्वरित फिक्स, वास्तव में एक हैक और इस प्रकार वांछनीय समाधान नहीं है, पुस्तकालयों/प्लगइन्स/निर्यात/ExportSql.class.php में स्थित निर्यात वर्ग फ़ाइल को संपादित करना है और लाइन 709

$create_query = '-- CREATE DATABASE IF NOT EXISTS ' 

लाइन 734

'-- USE ' . PMA_Util::backquoteCompat($db, $compat) 

संपादित करें:: वहाँ एक दोष है, और वह यह है कि, उनमें से पहले इस तरह के रूप में - "" बनाएं और उनका उपयोग बयान जोड़कर बाहर टिप्पणी की जा करने के लिए मजबूर यदि आप एक या अधिक ent निर्यात करते हैं ire डेटाबेस (डेटाबेस में डेटाबेस के अंदर कुछ या सभी तालिकाएं नहीं), तो CREATE और USE कथन भी टिप्पणी करते हैं।

+0

ऐसा लगता है कि यह चाल है। धन्यवाद! – Vlad

+3

अच्छी तरह से, साझा होस्टिंग पर phpmyadmin का उपयोग करते हुए वास्तव में कोई समाधान नहीं है, अब यह है –

0

हर्मीस के उत्तर के विपरीत एक बेहतर विचार फ़ाइल ./export.php फ़ाइल को संपादित करना होगा (आपको लगता है: db_export.php नहीं)।

लाइन 724 पर (phpMyAdmin 4.0.4 में) आप लाइनों मिल जाएगा:

if (! $export_plugin->exportDBCreate($db)) { 
     break; 
    } 

आप टिप्पणी या बनाने के डेटाबेस बयान के निर्माण छोड़ना उन्हें हटाने (जो मेरी राय में भी है सकते हैं फिर सेटर में निर्यात में 2 टिप्पणी लाइनें हैं)।

तो जैसा

:

/* 
    if (! $export_plugin->exportDBCreate($db)) { 
     break; 
    } 
    */ 

केवल ऊपर दी गई पंक्तियों एक एकल डाटाबेस निर्यात पर लागू होते हैं (लाइन 720 पर, आप मिल जाएगा: } elseif ($export_type == 'database') {)। तो आप पूर्ण सर्वर निर्यात तोड़ नहीं देंगे।

संबंधित मुद्दे