1031 mysql त्रुटि को कैसे ठीक करें - 'कैटलॉग_प्रोडक्ट_रेलैशन' के लिए टेबल स्टोरेज इंजन में यह विकल्प नहीं है?


30

मैं हमारे Magento स्टोर का एक नया विकास संस्करण बनाने की कोशिश कर रहा हूं। मैंने एल कैपिटान की एक साफ स्थापना की और पीएचपी, मैसकल (संस्करण 5.7.10) आदि के साथ एपाचे चला रहा हूं। मेरे पास phpmyadmin चल रहा है और Magento के लिए एक डेटाबेस बनाया गया है। हालांकि, जब मैं हमारे उत्पादन साइट से बैकअप आयात करने की कोशिश करता हूं तो मुझे त्रुटि मिलती है:

ERROR 1031 (HY000) at line 291001: Table storage engine for 'catalog_product_relation' doesn't have this option

मैंने कमांड के साथ .sql फ़ाइल को टर्मिनल के माध्यम से आयात करने की कोशिश की:

mysql -h localhost -u <user> -D <database> -p < <file>

मैं यहाँ खो गया हूँ। Google कुछ समय के लिए छोड़ दिया गया लेकिन समाधान नहीं ढूंढ सका। मैं उसी इंजन का उपयोग कर रहा हूं जैसे कि उत्पादन डेटाबेस में।

क्या किसी के भी पास कोई सुझाव है?


आपने निर्यात कैसे किया? क्या आपके स्थानीय डेटाबेस की जाँच की गई है यदि पहले से कोई सारणी बनाई गई है (कई बार परीक्षण करने के बाद)? यदि हां, तो नया आयात चलाने से पहले उन सभी तालिकाओं को हटा दें।
अन्ना वोक्कल

1
अन्यथा: शायद कुछ इस तरह से: stackoverflow.com/a/32083169/865443
अन्ना वोकल

जवाबों:


49

हाल ही में, मुझे आयात के साथ भी यही समस्या थी।

संकट

यह संभवत: तालिका के विकल्प के कारण है जो आपके सृजन योग्य डीडीएल में है: ROW_FORMAT=FIXED

चलो जाँचें कि एसक्यूएल डंप (Ex: magento-db-dip.sql) में ऐसा कोई स्ट्रिंग है या नहीं।

cat magento-db-dump.sql | grep '=FIXED'

जिसका परिणाम हुआ

) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Catalog Product Relation Table';
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Catalog Product To Website Linkage Table';

समाधान

ROW_FORMAT=FIXEDक्रिएट टेबल डीडीएल से विकल्प हटाने से समस्या ठीक हो जाएगी। तो चलिए संभव उपाय आजमाते हैं।

# 1

sed -i 's/ROW_FORMAT=FIXED//g' magento-db-dump.sql

यह MacOSx में मेरे लिए काम नहीं आया जिसके परिणामस्वरूप निम्न त्रुटि हुई:

sed: 1: "magento-db-dip.sql": अमान्य कमांड कोड m

# 2

sed -i '' 's/ROW_FORMAT=FIXED//g' magento-db-dump.sql

और यहां तक ​​कि इसके परिणामस्वरूप:

sed: RE त्रुटि: अवैध बाइट अनुक्रम

# 3 लेकिन यह एक मेरे लिए MacOSx में काम किया

LC_ALL=C sed -i '' 's/ROW_FORMAT=FIXED//g' magento-db-dump.sql

( स्रोत )


मेरे लिए निम्नलिखित कमांड ने काम किया:find -name "mysql_dump.sql" | xargs perl -pi -e 's/ROW_FORMAT=FIXED//g'
वसीक शाहरुख

1. ubuntu पर मेरे लिए काम किया
जोएल डेवी

@JoelDavey हां 1 # उबंटू में काम करता है। मैं मैकओएस का जिक्र कर रहा था।
मेगेप्सिचो

10

जब मैं MySQL 5.5 से MySQL 5.7 में Magento डेटाबेस डंप आयात करने का प्रयास कर रहा था, तो मैं एक ही मुद्दे पर आया था। समस्या तालिका विकल्प ROW_FORMAT = दो InnoDB तालिकाओं पर FIXED प्रतीत होती है। डेटाबेस डंप से इस विकल्प की दो घटनाओं को हटाकर आयात को त्रुटि के बिना चलाने की अनुमति दी गई।

ऐसा लगता है कि यह विकल्प केवल MyISAM तालिकाओं के लिए प्रासंगिक है , कम से कम MySQL 5.7 में।


1
छोटा जोड़: यह उस सेटिंग से संबंधित है innodb_strict_modeजो डिफ़ॉल्ट रूप से बंद हुआ करता था, लेकिन MySQL 5.7.7 (MySQL प्रलेखन के अनुसार) से शुरू होने वाले डिफ़ॉल्ट रूप से सक्षम है।
जिस्से रीटस्मा


6

एक अन्य विकल्प innodb_strict_mode = offआपके MySQL कॉन्फ़िगरेशन फ़ाइल में जोड़ना होगा । मैं इस त्रुटि से टकराया हुआ है, जिसकी अनुपलब्ध संस्थापनों magerunने मुझे SQL फ़ाइल को संपादित करने से रोक दिया। मुझे यकीन नहीं है कि अगर उत्पादन वातावरण में InnoDb सख्त मोड को अक्षम करना वांछनीय है, लेकिन कम से कम यह विकास के माहौल में काम करता है।


1

वह तालिका InnoDB होने की उम्मीद कर रही है। मैं यह सुनिश्चित करने के लिए कि आपने सक्षम / अनुमति दी है, आपकी mysql सेटिंग्स की जाँच करेगा। इसके अलावा, सुझाव है कि आपके पास मौजूदा तालिका संभव हो सकती है। मैं सभी तालिकाओं को हटा दूंगा और फिर से कोशिश करूंगा कि जब आप यह मान लें कि InnoDB काम कर रहा है।
बस आपके द्वारा प्रदान किए गए त्रुटि संदेश से हटकर, मैं उम्मीद करूंगा कि InnodDB तैयार नहीं है या आपके वर्तमान इंस्टॉल पर काम कर रहा है।


बस mysql को चेक किया। यह सक्षम है और डिफ़ॉल्ट इंजन के रूप में सेट है। मैं इसे बिल्कुल नए डेटाबेस पर आयात कर रहा हूं, जिसमें कोई टेबल नहीं है। उस समाधान की कोशिश करेंगे जो @Anna Völkl ने कहा .. आशा है कि यह मदद करता है
Woulei
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.