MySQL: Unknown table engine 'InnoDB' 问题解决

在CentOS 6.10和MySQL 5.1.73环境下,执行select操作时遇到'Unknown table engine 'InnoDB''错误。原因是该版本MySQL未安装InnoDB引擎。解决方法包括检查MySQL plugin目录,确认或拷贝InnoDB插件到正确位置,并在my.cnf配置文件中启用InnoDB,重启MySQL服务,最后通过show engines等命令验证InnoDB是否成功启用。
摘要由CSDN通过智能技术生成
问题出现环境:

CentOS 6.10, MySQL 5.1.73

问题现象:

对表做select操作的时候,出现如下的错误:
1286 - Unknown table engine 'InnoDB’

问题出现经过:

在搭建一个既有系统的开发环境的时候,做了一下mysql的数据转存操作。
操作比较原始一些,就是把数据库文件ibdatan文件,ib_logfilen文件替换原来的文件。从客户端登上去看的时候,数据库里面的表都看不见了。尝试了一下select count(*) from tableA的操作,出现了“ Unknown table engine ‘InnoDB’”这样的错误。

错误原因

主要本次安装的MySQL为5.1,没有安装InnoDB。MySQL 5.5开始,将默认数据库存储引擎从MyISAM改为InnoDB,就不会有这些问题了。这之前的办法要另行安装。
登入mysql客户端,通过show engines命令,可以看到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)
第一个错误提示说明你运行的 SQL 脚本文件中使用了 InnoDB 存储引擎,但是该引擎可能没有被安装或者被禁用了。你可以通过执行`SHOW ENGINES;`语句来查看当前 MySQL 数据库支持的存储引擎列表,如果 InnoDB 不在列表中,那么你需要启用 InnoDB 引擎。你可以在 MySQL 配置文件中添加或修改以下配置: ``` [mysqld] default-storage-engine=InnoDB innodb_file_per_table=1 innodb_buffer_pool_size=XXG # 根据你的实际情况设置合适的内存大小 ``` 其中,`default-storage-engine`配置项用于指定默认的存储引擎为 InnoDB,`innodb_file_per_table`配置项用于指定每个 InnoDB 表使用独立的表空间,`innodb_buffer_pool_size`配置项用于指定 InnoDB 缓冲池的大小。 第二个错误提示说明你的 SQL 脚本文件中涉及到了一个名为 xuesheng 的表,但是该表可能不存在。你可以通过执行`SHOW TABLES;`语句来查看当前数据库中存在的表,如果 xuesheng 不在列表中,那么你需要创建该表。你可以执行以下 SQL 语句来创建 xuesheng 表: ``` CREATE TABLE xuesheng ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(30) NOT NULL, age TINYINT UNSIGNED NOT NULL, sex ENUM('男', '女') NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ``` 其中,`id`字段为自增字段,`name`字段为字符串类型,`age`字段为无符号的小整数类型,`sex`字段为枚举类型。注意,这里的存储引擎也是 InnoDB
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值