Próbuję stworzyć nową wersję programistyczną naszego sklepu Magento. Zrobiłem czystą instalację El Capitan i uruchomiłem apache z PHP, Mysql (wersja 5.7.10) itp. Mam również phpmyadmin i stworzyłem bazę danych dla Magento. Jednak gdy próbuję zaimportować kopię zapasową z naszej witryny produkcyjnej, pojawia się błąd:
ERROR 1031 (HY000) at line 291001: Table storage engine for 'catalog_product_relation' doesn't have this option
Próbowałem zaimportować plik .sql przez terminal za pomocą polecenia:
mysql -h localhost -u <user> -D <database> -p < <file>
Zgubiłem się tutaj. Google odszedł trochę czasu, ale nie mógł znaleźć rozwiązania. Używam tego samego silnika, co w danych produkcyjnych.
Czy ktoś ma jakiś pomysł?
magento-1.9
database
Woulei
źródło
źródło
Odpowiedzi:
Ostatnio miałem ten sam problem z importem.
PROBLEM
Jest to prawdopodobnie spowodowane opcją tabeli, którą masz w CREATE TABLE DDL:
ROW_FORMAT=FIXED
Sprawdźmy, czy w zrzutu SQL znajduje się taki ciąg (np .: magento-db-dump.sql).
Co spowodowało, że
ROZWIĄZANIE
Usunięcie
ROW_FORMAT=FIXED
opcji z CREATE TABLE DDL naprawi problem. Wypróbujmy więc możliwe rozwiązania.# 1
To nie działało dla mnie w MacOSx, co spowodowało następujący błąd:
# 2
I nawet to spowodowało:
# 3 Ale ten działał dla mnie w MacOSx
( źródło )
źródło
find -name "mysql_dump.sql" | xargs perl -pi -e 's/ROW_FORMAT=FIXED//g'
Ten sam problem natrafiłem na próbę zaimportowania zrzutu bazy danych Magento z MySQL 5.5 do MySQL 5.7. Problemem wydaje się być opcja tabeli ROW_FORMAT = FIXED na dwóch tabelach InnoDB. Usunięcie dwóch wystąpień tej opcji ze zrzutu bazy danych pozwoliło na uruchomienie importu bez błędów.
Wydaje się, że ta opcja dotyczy tylko tabel MyISAM , przynajmniej w MySQL 5.7.
źródło
innodb_strict_mode
które było domyślnie wyłączone, ale jest domyślnie włączone począwszy od MySQL 5.7.7 (zgodnie z dokumentacją MySQL).Pracuj na różnych platformach (Mac + Linux)
źródło
Inną opcją byłoby dodanie
innodb_strict_mode = off
do pliku konfiguracyjnego MySQL. Natrafiłem na ten błąd przy użyciu instalacji nienadzorowanych,magerun
które uniemożliwiły mi edycję pliku SQL. Nie jestem pewien, czy wyłączenie trybu ścisłego InnoDb jest pożądane w środowisku produkcyjnym, ale przynajmniej działa w środowisku programistycznym.źródło
Ta tabela oczekuje na InnoDB. Sprawdziłbym twoje ustawienia mysql, aby upewnić się, że masz włączone / dozwolone. Możliwa jest również sugestia, że tabela może istnieć. Chciałbym usunąć wszystkie tabele i spróbować ponownie po sprawdzeniu, czy InnoDB działa.
Po wyłączeniu podanego komunikatu o błędzie spodziewam się, że InnodDB nie jest gotowy lub nie działa na bieżącej instalacji.
źródło