我无法将myISAM转换为innodb

时间:2009-12-10 04:56:22

标签: mysql database innodb myisam

我做了擦拭和恢复。

  1. 我备份了我当前的innodb表。 (mysqldump的)
  2. 我将它加载到数据库中。
  3. 出于某种原因......桌子现在都是myisam而不是innodb ......很奇怪!
  4. 我尝试做:

    ALTER TABLE xxx ENGINE = innodb;

  5. 它对任何表都没有任何作用。

    “显示表状态”仍然是“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 个答案:

答案 0 :(得分:10)

我在你的show engines输出中看到你的MySQL安装中禁用了InnoDB。您需要启用它才能将表从MyISAM转换为InnoDB。