MySQL SQLSTATE[42000]: Syntax error or access violation: 1286 Unknown table engine 'InnoDB' 错误的原因及解决

我的一个网站用ThinkPHP搭建的,今天网站挂了,打开调试模式看了一下,错误信息如下

SQLSTATE[42000]: Syntax error or access violation: 1286 Unknown table engine 'InnoDB'

看起来是InnoDB引擎没起来。搜索了一下,有一些人说是版本啊什么的,我的都不是这些原因,因为之前是能访问的嘛。

之后我就去服务器看了一下MySQL,看看都哪些存储引擎可用,发现果真没有InnoDB。

mysql> show engines;
+------------+---------+-----------------------------------------------------------+--------------+------+------------+
| Engine     | Support | Comment                                                   | Transactions | XA   | Savepoints |
+------------+---------+-----------------------------------------------------------+--------------+------+------------+
| MRG_MYISAM | YES     | Collection of identical MyISAM tables                     | NO           | NO   | NO         |
| CSV        | YES     | CSV storage engine                                        | NO           | NO   | NO         |
| MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance    | NO           | NO   | NO         |
| MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables | NO           | NO   | NO         |
+------------+---------+-----------------------------------------------------------+--------------+------+------------+
4 rows in set (0.00 sec)

我是想是不是哪些资源不足导致了这个问题呢,查看了一下内存看起来紧张了一些,我用的云主机内存1G,之后就想到了我之前在/etc/my.cnf中配置的

innodb_buffer_pool_size=64M


可能和它有关,所以去掉了这句。重启MySQL果真好了。

暂时先去掉这句吧,等晚上有时间干脆不用InnoDB了,反正对事务真的没有要求。这也算当初对存储引擎的选择没有仔细考量吧。
 

你可能感兴趣的:(php和mysqlweb开发,memcached,sql)