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

博客作者遇到MySQL报错SQLSTATE[42000]: Syntax error or access violation: 1286 Unknown table engine 'InnoDB',排除了版本问题后,发现服务器上缺少InnoDB存储引擎。通过检查内存和MySQL配置文件,作者发现可能因内存限制导致问题,并临时注释掉配置文件中涉及InnoDB的部分,重启MySQL服务解决了问题。打算后续不再使用InnoDB,因为网站对事务处理无特殊需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

博客搬家:由于各种原因,我现在的博客将首发于blog.mojijs.com, 可以百度搜索 “姜哥的墨迹技术博客” , 或者 点击这里 本文首发地址 http://blog.mojijs.com/post/146.html

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

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

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

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

1
2
3
4
5
6
7
8
9
10
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          |
+ ------------+---------+-----------------------------------------------------------+--------------+------+------------+
rows  in  set  (0.00 sec)

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

1
innodb_buffer_pool_size=64M

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

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

更多内容 http://blog.mojijs.com/post/146.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值