2009-12-10 2 views
9

Я сделал очистку и восстановление.Я не могу преобразовать myISAM в innodb

  1. Я поддерживаю свои текущие таблицы innodb. (mysqldump)
  2. Я загрузил его в базу данных.
  3. По какой-то причине ... столы теперь все myisam вместо innodb ... странно!
  4. Я стараюсь:

    ALTER TABLE xxx ENGINE = innodb;

И это ничего не делает для любого стола.

«Показать статус таблицы» до сих пор является «MyISAM»

mysql> alter table auth_user_user_permissions engine=innodb; 
Query OK, 0 rows affected, 1 warning (0.06 sec) 
Records: 0 Duplicates: 0 Warnings: 0 



+------------+----------+----------------------------------------------------------------+ 
| Engine  | Support | Comment              | 
+------------+----------+----------------------------------------------------------------+ 
| MyISAM  | DEFAULT | Default engine as of MySQL 3.23 with great performance   | 
| MEMORY  | YES  | Hash based, stored in memory, useful for temporary tables  | 
| InnoDB  | DISABLED | Supports transactions, row-level locking, and foreign keys  | 
| BerkeleyDB | NO  | Supports transactions and page-level locking     | 
| BLACKHOLE | YES  | /dev/null storage engine (anything you write to it disappears) | 
| EXAMPLE | NO  | Example storage engine           | 
| ARCHIVE | YES  | Archive storage engine           | 
| CSV  | YES  | CSV storage engine            | 
| ndbcluster | DISABLED | Clustered, fault-tolerant, memory-based tables     | 
| FEDERATED | DISABLED | Federated MySQL storage engine         | 
| MRG_MYISAM | YES  | Collection of identical MyISAM tables       | 
| ISAM  | NO  | Obsolete storage engine          | 
+------------+----------+----------------------------------------------------------------+ 



# * InnoDB 
# 
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. 
# Read the manual for more InnoDB related options. There are many! 
# You might want to disable InnoDB to shrink the mysqld process by circa 100MB. 
#skip-innodb 

innodb_buffer_pool_size = 10000M 
innodb_additional_mem_pool_size = 20M 
innodb_log_file_size=1024M 
innodb_log_buffer_size=8M 
innodb_flush_log_at_trx_commit = 0 


mysql> alter table auth_group engine=innodb; 
Query OK, 0 rows affected, 1 warning (0.05 sec) 
Records: 0 Duplicates: 0 Warnings: 0 

mysql> show warnings; 
+---------+------+----------------------------------------------------+ 
| Level | Code | Message           | 
+---------+------+----------------------------------------------------+ 
| Warning | 1266 | Using storage engine MyISAM for table 'auth_group' | 
+---------+------+----------------------------------------------------+ 
1 row in set (0.00 sec) 
+1

Это длинный снимок, но возможно ли, что ваша новая установка MySQL не включает поддержку InnoDB? Чтобы увидеть поддерживаемые двигатели, выполните следующий запрос: 'show engines;'. Каков результат? – Asaph

+0

Я вижу, что вы включили обновление, показывающее, что есть предупреждение. Каков результат следующего запроса: 'show warnings;'? – Asaph

+0

У очень старых версий MySQL нет встроенного InnoDB. Какую версию MySQL вы используете? Каков результат следующего запроса: 'select version();'? – Asaph

ответ

10

Я вижу в вашем show engines вывод, что InnoDB отключен в вашем MySQL установки. Вам нужно включить его, чтобы иметь возможность конвертировать ваши таблицы из MyISAM в InnoDB.

+1

Как включить его? – TIMEX

+0

@alex: Какую версию MySQL вы используете? Проверьте с помощью 'select version();'. – Asaph

+0

@alex: Есть ли записи в журнале ошибок MySQL (возможно, при запуске), которые, как представляется, связаны с поддержкой InnoDB? – Asaph

Смежные вопросы