【问题标题】:Changing the engine to InnoDB from MyISAM is not working将引擎从 MyISAM 更改为 InnoDB 不起作用
【发布时间】:2011-11-03 16:46:57
【问题描述】:

我正在尝试将表引擎从 MyISAM 更改为 INNODB。我正在使用

alter table tablename ENGINE=INNODB

命令。我在 mysql 端没有收到任何错误或警告。我还评论了

跳过-innodb

my.cnf 文件中的行。所以当我做一个

显示变量,例如“have-innodb%”

它给了我一个“是”。同样为了安全起见,我还删除了我的 ib_logfile0 和 ib_logfile1 并重新启动了我的 mysql 服务器。

但它仍然没有改变引擎。我还做了一个展示引擎,它显示 innodb 作为可用引擎之一。

而且这些表充满了数据,大约有 5000 行,所以当表有数据时更改引擎类型,会不会有问题??

丢失的链接是什么??

【问题讨论】:

  • 您是否运行过show create table table_name 来验证它没有改变?
  • 好吧,我做了一个显示表状态,其中 name='tablename'。并显示 myisam
  • 这可能是 MySQL 的 bug,你用的是什么版本?

标签: mysql innodb myisam mysql-management


【解决方案1】:

你能重新启动服务器吗?如果是这样,错误日志会告诉您初始化 InnoDB 引擎是否有问题。
这是您数据库中的第一个 InnoDB 表吗?如果是这样,您可能忘记创建 ibdata 文件。
该表是否使用全文索引或其他与 InnoDB 不兼容的功能?

【讨论】:

  • Nic,你能帮我找出错误日志吗?我尝试在 /var/lib/mysql 中查找它,但我没有在那里找到它。我在fedora上,还有其他存储mysql错误日志的位置吗?
  • 好的,我确实找到了日志文件,它说 InnoDB 服务器启动良好
  • 在您的变量中,查找datadirinnodb-data-home-dirinnodb-data-file-path:这些将帮助您找到您的 ibdata 文件(其中包含 InnoDB 表)。
猜你喜欢
  • 2013-04-25
  • 1970-01-01
  • 2014-02-26
  • 2011-11-19
  • 2014-09-08
  • 2010-11-12
  • 1970-01-01
  • 2012-10-02
  • 1970-01-01
相关资源
最近更新 更多