Як виправити помилку mysql 1031 - У механізмі зберігання таблиць для 'каталог_продукту_реляції' немає цієї опції?


30

Я намагаюся зробити нову версію розробки нашого магазину Magento. Я зробив чисту інсталяцію El Capitan і запустив Apache з PHP, Mysql (версія 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 кинув деякий час, але не зміг знайти рішення. Я використовую той же двигун, що і у виробничій базі даних.

Хтось має ідею?


Як ви створили експорт? Чи перевіряли ви локальну базу даних, чи є вже створені таблиці (після її тестування кілька разів)? Якщо так, видаліть усі ці таблиці перед запуском нового імпорту.
Anna Völkl

1
В іншому випадку: Можливо, щось подібне: stackoverflow.com/a/32083169/865443
Anna Völkl

Відповіді:


49

Нещодавно у мене були ті ж проблеми з імпортом.

ПРОБЛЕМА

Можливо, це пов’язано з варіантом таблиці, який є у вашому CREATE TABLE DDL: ROW_FORMAT=FIXED

Перевіримо, чи є в дамп SQL якась така рядок (напр .: magento-db-dump.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параметра з CREATE TABLE DDL виправить проблему. Тож давайте спробуємо можливі рішення.

№1

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

Це не спрацювало для мене в MacOSx, що призвело до наступної помилки:

sed: 1: “magento-db-dump.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 # працює в Ubuntu. Я мав на увазі MacOS.
MagePsycho

10

Я зіткнувся з тією ж проблемою при спробі імпортувати дамп бази даних Magento з MySQL 5.5 в MySQL 5.7. Здається, що проблема полягає у варіанті таблиці ROW_FORMAT = FIXED у двох таблицях InnoDB. Видалення двох випадків цього параметра з дампа бази даних дозволило імпортуватись без помилок.

Здається, цей варіант стосується лише таблиць MyISAM , принаймні, для MySQL 5.7.


1
Невелике доповнення: воно пов'язане з налаштуваннями, innodb_strict_modeякі раніше були вимкнені за замовчуванням, але вони включені за замовчуванням, починаючи з MySQL 5.7.7 (відповідно до документації MySQL).
Jisse Reitsma

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

Робоча кросова платформа (Mac + Linux)


прекрасно працював на монетному дворі Linux ....
Ендрю Сміт

6

Іншим варіантом буде додавання innodb_strict_mode = offдо файлу конфігурації MySQL. Я зіткнувся з цією помилкою, використовуючи без нагляду встановлення, magerunякі не дозволяли мені редагувати файл SQL. Я не впевнений, що в виробничих умовах бажано відключати суворий режим InnoDb, але принаймні це працює в середовищі розробки.


1

Ця таблиця очікує InnoDB. Я перевірив би ваші налаштування mysql, щоб переконатися, що ви ввімкнули / дозволили. Також можлива пропозиція про те, що у вас може бути така таблиця. Я б видалив усі таблиці та спробував би його знову після того, як ви перевірите, що InnoDB працює.
Тільки відключаючи повідомлення про помилку, яке ви надали, я би сподівався, що InnodDB не готовий або працює над вашою поточною установкою.


Щойно перевірив mysql. його ввімкнено і встановлено як двигун за замовчуванням. Я імпортую його в абсолютно нову базу даних, у якій зовсім немає таблиць. Спробую рішення, яке сказала @Anna Völkl. Сподіваюся, що це допоможе
Woulei
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.