开发技术学习 »
数据库 » mysql错误:1286 - Unknown table engine 'InnoDB\temp',mysql错误解决方法
mysql错误:1286 - Unknown table engine 'InnoDB\temp',mysql错误解决方法
昨天晚上有一个客户说他的网站不能下载了!我进去一看,页面上显示:1286 - Unknown table engine 'InnoDBtemp'
一看应该就知道是数据库这块的问题,mysql错误解决方法
一、
Unknown table engine 'InnoDB'[转载]
查看文章 ERROR 1286 (42000): Unknown table engine 'InnoDB'2009-07-17 15:51 从主库复制innodb的所有文件做副库,启动后报ERROR 1286 (42000): Unknown table engine 'InnoDB'
删ib_logfile*,可能是my.cnf对log的设置不一样造成读不出来。
最近在迁移mysql数据库innodb引擎的过程中,碰到以上错误。把ib_logfile*删除,再启动mysql即可正常。yeah。
好久没写文章了。
二、
Query failed: Unknown table engine ‘InnoDb’
提示信息明显,缺少InnoDb数据库引擎。
命令行下查看一下可用数据库引擎:
Mysql> show engines;
+————+———+————
| Engine | Support | Comment …
+————+———+————
| MEMORY | YES | …
| FEDERATED | NO |
| MyISAM | DEFAULT |
| BLACKHOLE | YES |
| MRG_MYISAM | YES |
| CSV | YES |
| ARCHIVE | YES |
| InnoDB | NO |
+————+———+-
8 rows in set (0.00 sec)
确实是InnoDB引擎没启用。
解决办法有二:
1、修改SQL语句中的引擎InnoDB为MyISAM,一般MyISAM都是启用的。
2、修改MySQL安装目录下的my.ini,在skip-innodb前增加#,重启MySQL,(这也是开启Mysql数据库InnoDB功能的方法!)再次通过命令行查看结果为:
mysql> show engines;
+————+———+————
| Engine | Support | Comment …
+————+———+————
| MEMORY | YES | …
| FEDERATED | NO |
| MyISAM | DEFAULT |
| BLACKHOLE | YES |
| MRG_MYISAM | YES |
| CSV | YES |
| ARCHIVE | YES |
| InnoDB | YES |
+————+———
根据my.ini中的提示,启用InnoDB引擎会消耗内存和硬盘空间,如非必要不建议启用。
show engine innodb statusG;
show variables like 'innodb_version'G;
执行 mysqldump 时出现找不到某一个 tables 并且中断执行
[root@localhost ~]# /www/Wdlinux/mysql-5.1.56/bin/mysqldump -uroot -p haier -l -F >/root/test.sql
mysqldump: Got error: 1146: Table 'xoops.vote_results' doesn't exist when using LOCK TABLES
mysql> show variables like 'have_innodb';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_innodb | DISABLED |
+---------------+-------+
1 row in set (0.04 sec)
DISABLED和NO是有区别的,DISABLED(开启为YES)表示具有该功能,只是没有启用(通过启动参数or配置文件),NO表示彻底的不支持的编译版本。
若结果中列Engine有innodb的记录,且列Support为"YES"则表示支持.
若列Engine有innodb的记录,但且列Support为"NO",则说明你参数文件中屏蔽了innodb引擎的使用,你去参数配置文件中注释掉"#skip-innodb"项.
若列Engine没有innodb的记录,则表示你的版本没有支持innodb引擎,你必须去重新安装支持innodb引擎的版本(如果是自己编译安装的, 要加上innodb对应的参数).
{
找到 my.ini 修改 default-storage-engine = InnoDB
保存 然后 重启mysql
你这样做只是把默认引擎更改为InnoDB,根本没启用肯定出错。
把my.ini中skip-innodb前面的注释和空格去掉,保存重启mysql
}
确定你安装的mysql版本支持innodb后,你"表结构是MyISAM,并且里面有了一些数据,如果改成INNODB"很容易实现,可以直接用命令更新表的存储引擎即可,如:
alter table tb_name engine=innodb;(版本5.0后都可以用engine参数)
或
alter table tb_name type=innodb;(低版本中用type参数)
文章来源:http://test.flyes.net/product/20121027132237.html