2011-11-03 142 views
1

我正在尝试将MyISAM表引擎从MyISAM更改为INNODB。我现在用的是从MyISAM将引擎更改为InnoDB无法正常工作

alter table tablename ENGINE=INNODB

命令。我没有收到任何错误或在MySQL方面的警告。我还谈到在my.cnf文件中

跳过InnoDB的

线。所以,当我做了

显示的变量,比如 '有-的InnoDB%'

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

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

此外,这些表格充满了数据,并有大约5000行,所以当表有数据时更改引擎类型,那会是问题吗?

缺失的链接是什么?

+0

你运行了一个'show create table table_name'来验证它没有改变吗? –

+0

那么我做一个显示表状态,其中name ='tablename'。并显示myisam – macha

+0

这可能是一个MySQL的错误,你用的是什么版本? –

回答

0

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

+0

Nic,你能帮我找出错误日志吗?我试图在/ var/lib/mysql中查找它,但我没有在那里找到它。我在Fedora上,是否有另一个位置用于存储mysql错误日志? – macha

+0

好的,我确实找到了日志文件,它说InnoDB服务器启动得很好 – macha

+0

在你的变量中,查找'datadir','innodb-data-home-dir','innodb-data-file-path':这些将有助于你会发现你的ibdata文件(它包含InnoDB表)。 – niczero

相关问题