2009-12-10 9 views
9

konvertieren Ich habe einen Wipe und Restore.Ich kann myISAM nicht zu innodb

  1. Ich habe meine aktuellen innodb-Tabellen gesichert. (mysqldump)
  2. Ich habe es in die Datenbank geladen.
  3. Aus irgendeinem Grund ... die Tabellen sind jetzt alle myisam statt innodb ... komisch!
  4. Ich versuche zu tun:

    ALTER TABELLE xxx ENGINE = innodb;

Und es tut nichts zu irgendeiner Tabelle.

"Tabelle anzeigen Status" noch "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

Dies ist ein Longshot, aber ist es möglich, dass Ihre neue Installation von MySQL keine InnoDB-Unterstützung enthält? Um die unterstützten Engines anzuzeigen, geben Sie die folgende Abfrage ein: 'show engines;'. Was ist die Ausgabe? – Asaph

+0

Ich sehe, Sie haben ein Update hinzugefügt, dass eine Warnung angezeigt wird. Was ist die Ausgabe der folgenden Abfrage: 'show warnings;'? – Asaph

+0

In sehr alten Versionen von MySQL ist InnoDB standardmäßig nicht aktiviert. Welche Version von MySQL verwenden Sie? Was ist die Ausgabe der folgenden Abfrage: 'select version();'? – Asaph

Antwort

10

ich in Ihrer show engines Ausgabe sehen, die InnoDB in MySQL deaktiviert installieren. Sie müssen es aktivieren, um Ihre Tabellen von MyISAM nach InnoDB konvertieren zu können.

+1

Wie aktiviere ich es? – TIMEX

+0

@alex: Welche Version von MySQL verwenden Sie? Überprüfen Sie mit 'select version();'. – Asaph

+0

@alex: Gibt es irgendwelche Einträge im MySQL-Fehlerprotokoll (möglicherweise während des Starts), die mit InnoDB-Unterstützung in Verbindung zu stehen scheinen? – Asaph

Verwandte Themen