Nasıl mysql hatası 1031 düzeltmek için - 'catalog_product_relation' için tablo depolama motoru bu seçeneğe sahip değil mi?


30

Magento mağazamızın yeni bir geliştirme sürümünü yapmaya çalışıyorum. El Capitan'ın temiz bir kurulumunu yaptım ve PHP, Mysql (sürüm 5.7.10) vb. İle çalışan apache kullandım. Ancak yedeklemeyi üretim sitemizden almaya çalıştığımda hata alıyorum:

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

.Sql dosyasını Terminal aracılığıyla şu komutla içe aktarmaya çalıştım:

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

Burada kayboldum Google bir süre istifa etti ancak çözümü bulamadı. Üretim veritabanındaki ile aynı motoru kullanıyorum.

Bir fikri olan var mı?


Dışa aktarımı nasıl yaptınız? Yerel veritabanınızı daha önce oluşturulmuş tablolar olup olmadığını kontrol ettiniz mi (birkaç kez test ettikten sonra)? Öyleyse, yeni bir içe aktarma çalıştırmadan önce tüm bu tabloları silin.
Anna Völkl

1
Aksi takdirde: Belki böyle bir şey: stackoverflow.com/a/32083169/865443
Anna Völkl

Yanıtlar:


49

Son zamanlarda ithalat ile aynı sorunu yaşadım.

SORUN

Bu muhtemelen CREATE TABLE DDL'nizde bulunan tablo seçeneğinden kaynaklanmaktadır: ROW_FORMAT=FIXED

SQL dökümü içinde böyle bir dize olup olmadığını kontrol edelim (Örn: magento-db-dump.sql).

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

Olarak sonuçlandı

) 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';

ÇÖZÜM

ROW_FORMAT=FIXEDSeçeneği CREATE TABLE DDL'den kaldırmak sorunu çözecektir. Öyleyse olası çözümleri deneyelim.

1.

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

Bu benim için MacOSx'ta işe yaramadı ve bu da aşağıdaki hatayı verdi:

sed: 1: “magento-db-dump.sql”: geçersiz komut kodu m

2.

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

Ve bu bile şöyle sonuçlandı:

sed: RE hatası: geçersiz bayt sırası

# 3 Ama bu benim için MacOSx'ta çalıştı

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

( kaynak )


Benim için aşağıdaki emir çalıştı:find -name "mysql_dump.sql" | xargs perl -pi -e 's/ROW_FORMAT=FIXED//g'
Wasiq Shahrukh 10:18

1. ubuntu'da benim için çalıştı
Joel Davey,

@JoelDavey Evet 1 #, Ubuntu'da çalışır. MacOS'tan bahsediyordum.
MagePsycho

10

Magento veritabanı dökümünü MySQL 5.5'ten MySQL 5.7'ye almaya çalışırken de aynı sorunu gördüm. Sorun tablo seçeneği gibi görünüyor ROW_FORMAT = iki InnoDB tablosunda DÜZELTİLDİ. Bu seçeneğin iki oluşumunu veritabanı dökümünden kaldırmak, içe aktarmanın hatasız çalışmasına izin verdi.

Görünüşe göre bu seçenek sadece MyISAM tabloları ile ilgilidir , en azından MySQL 5.7.


1
Küçük ekleme: innodb_strict_modeVarsayılan olarak kapalı olan, ancak varsayılan olarak MySQL 5.7.7'den başlayarak (MySQL belgelerine göre) ayarlanan ayarlarla ilgilidir.
Jisse Reitsma

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

Çapraz platform çalışması (Mac + Linux)


linux nane üzerinde mükemmel çalıştı ....
Andrew Smith

6

Başka bir seçenek innodb_strict_mode = offMySQL yapılandırma dosyanıza eklemek olacaktır. magerunBeni SQL dosyasını düzenlemekten uzak tutan katılımsız yüklemeleri kullanarak bu hataya çarptım . InnoDb katı modunu devre dışı bırakmak bir üretim ortamında tercih edilip edilmeyeceğinden emin değilim, ama en azından bir geliştirme ortamında çalışıyor.


1

Bu masa InnoDB olmasını bekliyor. Etkinleştir / izin verdiğinden emin olmak için mysql ayarlarınızı kontrol ederim. Ayrıca, bu masaya sahip olabileceğiniz önerisi de mümkündür. Ben tüm tabloları kaldırmak ve InnoDB çalıştığını doğruladıktan sonra tekrar deneyin.
Sağladığınız hata iletisini kapatırken, InnodDB'nin şu anki kurulumunuzda hazır olmadığını ya da çalışmadığını beklerdim.


Sadece mysql kontrol ettim. etkin ve varsayılan motor olarak ayarlandı. Masaya hiç yepyeni bir veritabanında ithal ediyorum. @ Anna Völkl dedi ki çözümü deneyecek ..
Yardımcı
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.