2009-12-10 13 views
9

Hice una limpieza y restauración.No puedo convertir myISAM a innodb

  1. Respaldo mis tablas de innodb actuales. (mysqldump)
  2. Lo cargué en la base de datos.
  3. Por alguna razón ... las tablas ahora son todas myisam en lugar de innodb ... ¡raro!
  4. que trato de hacer:

    ALTER TABLE xxx MOTOR = innodb;

Y no le hace nada a ninguna mesa.

"Mostrar estado de la tabla" fija es "MySQL"

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

Esto es una idea remota, pero ¿es posible que su nueva instalación de MySQL no incluya soporte InnoDB? Para ver los motores admitidos, emita la siguiente consulta: 'show engines;'. ¿Cuál es el resultado? – Asaph

+0

Veo que ha incluido una actualización que muestra que hay una advertencia. ¿Cuál es el resultado de la siguiente consulta: 'show warnings;'? – Asaph

+0

Versiones muy antiguas de MySQL no tienen habilitado InnoDB por defecto. ¿Qué versión de MySQL estás usando? ¿Cuál es el resultado de la siguiente consulta: 'select version();'? – Asaph

Respuesta

10

veo en su salida show engines que InnoDB está desconectado en su instalación de MySQL. Debe habilitarlo para poder convertir sus tablas de MyISAM a InnoDB.

+1

¿Cómo lo habilito? – TIMEX

+0

@alex: ¿Qué versión de MySQL estás usando? Verifique con 'seleccionar versión();'. – Asaph

+0

@alex: ¿Hay alguna entrada en el registro de errores de MySQL (quizás durante el arranque) que parece estar relacionada con la compatibilidad con InnoDB? – Asaph

Cuestiones relacionadas