mysql执行sql文件报错Error: Unknown storage engine‘InnoDB’的解决方法

发现问题

最近在工作中遇到一个问题,在运行了一个innoDB类型的sql文件,报了Error: Unknown storage engine 'InnoDB'错误,网上查了很多方法,但是都没办法真正解决我的问题,后来解决了,在这里总结一下过程,方便有遇到类似情况的朋友们可以有的参照,下面话不多说,来一起看看详细的介绍吧。

解决过程:

我用的是MySql5.5版本的数据库。出现以上错误的时候先用命令-》show engines;查看一下引擎详情:

发现并没有innodb这个条目:

然后我们查看日志文件:

不知道windowns日志文件位置的可以用命令->show variables like '%error%';查看

然后:在日志中我们发现:

错误在于ibdata1文件内容有误。

接下来,我们关闭数据服务,删除安装目录下的ibadata1文件,和错误日志同目录下的两个文件:看下图

删除成功后,更改my.ini文件参数。

innodb_buffer_pool_size = 256M

innodb_log_file_size  = 256M

innodb_thread_concurrency = 16

innodb_flush_log_at_trx_commit = 2

innodb_flush_method  = normal 

其中innodb_flush_method = normal是最后补进去的,其他的参数原来配置文件中都有。

更改完成后,保存并从新启动mysql服务。

再次执行-》show engines;

发现innoDB已经可以使用了,这样就表示成功了。

再次去运行刚才的文件就能完美运行了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • MySQL 5.7.16 修改密码提示 ERROR 1054 (42S22): Unknown column ''password'' in ''field list''的原因

    按照网上之前版本的操作,将my.ini中的skip-grant-tables注释去掉,然后在命令行中以mysql -u root -p可以直接进入,但是执行 mysql> update mysql.user set password=password('password') where user='root'; 会出现以下错误 mysql> ERROR 1054 (42S22): Unknown column 'password' in 'field list' 错误原因:mysql数据库下已

  • MySQL重置root密码提示"Unknown column ‘password"的解决方法

    晚上打开MAC,发现root帐户突然不能正常登陆MySQL,于是打算重置密码,看了几篇文章,竟然重置不成功,总是得到Unknown column 'password'的错误,看了user的表结构也确实没有该字段了.经查发现是MySQL升级后将字段名给改了,password名称改为authentication_string了.知道原因后,按照如下命令就可以成功重置root密码了. $sudo mysql.server stop #先关闭正常的MySQL服务 $sudo mysqld_safe --

  • mysql执行sql文件报错Error: Unknown storage engine‘InnoDB’的解决方法

    发现问题 最近在工作中遇到一个问题,在运行了一个innoDB类型的sql文件,报了Error: Unknown storage engine 'InnoDB'错误,网上查了很多方法,但是都没办法真正解决我的问题,后来解决了,在这里总结一下过程,方便有遇到类似情况的朋友们可以有的参照,下面话不多说,来一起看看详细的介绍吧. 解决过程: 我用的是MySql5.5版本的数据库.出现以上错误的时候先用命令->show engines;查看一下引擎详情: 发现并没有innodb这个条目: 然后我们查看日志

  • mysql导入sql文件报错 ERROR 2013 2006 2002

    今天导入sql总是提示错误 复制代码 代码如下: ERROR 2013 (HY000): Lost connection to MySQL server during query ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/va

  • MySQL报错:sql_mode=only_full_group_by的4种轻松解决方法(含举例)

    目录 前言​ 方法一:直接修改数据库配置 方法二:修改数据库配置(永久生效) 方法三:使用 any_value() 或 group_concat() 方法四:开动脑筋,修改代码 总结 前言​ 作为初学者,我们在使用MySQL的时候总是会遇到各种各样的报错,让人头痛不已.其中有一种报错,sql_mode=only_full_group_by,十分常见,每次都是老长的一串出现,然后带走你所有的好心情 出现这样的报错,并不是因为你的代码写得不好,而是因为在MySQL 5.7后,MySQL默认开启了SQ

  • Maven install 报错"程序包不存在"问题的解决方法

    概述 在mvn clean install时,控制台各种报错,大概有: java:[8,52] 程序包com.xxx不存在 java:[98,27] 找不到符号 符号: 类 XXX 位置: 类XXX [ERROR] COMPILATION ERROR : Caused by: org.apache.maven.plugin.compiler.CompilationFailureException: Compilation failure  at org.apache.maven.plugin.c

  • Python使用pickle模块报错EOFError Ran out of input的解决方法

    本文实例讲述了Python使用pickle模块报错EOFError Ran out of input的解决方法.分享给大家供大家参考,具体如下: 遇到了 EOFError:Ran out of input 不到为什么这样,最后用捕获异常的办法解决掉了,暂时对程序本身没有啥影响,代码如下: # coding=utf-8 import pickle def usr_date(): try: with open('usr_date.pkl','rb') as f: return pickle.load

  • 安装CentOS 6.x报错"Disk sda contains BIOS RAID metadata"解决方法

    今天在安装CentOS6.2的时候,当进到检测硬盘的时候,总是过不去,报错如下: Disk sda contains BIOS RAID metadata, but is not part of any recognized BIOS RAID sets. Ignoring disk sda 这种情况在Ubuntu,SUSE都有类似的情况,只是提示不太一样. 有时候是sda,有时候是sdb. 感觉是这块硬盘以前是做过raid,现在不认.怎么办. 进入安装选择菜单时 按TAB键,会进入到Linux

  • 安装CentOS 6.x报错"Disk sda contains BIOS RAID metadata"解决方法

    今天在安装CentOS6.2的时候,当进到检测硬盘的时候,总是过不去,报错如下: Disk sda contains BIOS RAID metadata, but is not part of any recognized BIOS RAID sets. Ignoring disk sda 这种情况在Ubuntu,SUSE都有类似的情况,只是提示不太一样. 有时候是sda,有时候是sdb. 感觉是这块硬盘以前是做过raid,现在不认.怎么办. 进入安装选择菜单时 按TAB键,会进入到Linux

  • MySQL在grant时报错ERROR 1064 (42000)的原因及解决方法

    网上查到的grant方式大多会报错,主要原因是MySQL版本8.0后不能再使用原来的方式 查询MySQL版本 SELECT version(); 在8.0版本下 grant all privileges on test.* to test@'%' identified by '123456'; 报错 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your

  • Finished with error:Navicat运行SQL文件报错的解决

    目录 问题描述 错误原因 解决方法 其他问题 字符集问题 运行选项问题 SQL代码问题 总结 问题描述 使用 Navicat 导入之前转储好的 sql 文件,报错 错误原因 在信息日志当中往上翻,发现没有选择数据库,所以报错的原因就是没有提前创建好一个同名的空数据库 解决方法 创建SQL文件对应的数据库名,然后找到对应数据库, 右键  运行SQL文件!  错误解决 其他问题 字符集问题 注意保证原数据库的字符集,排序方式  和  新建数据库的一致 运行选项问题 有时候把这个选项取消选中,再运行就

  • sql无效字符 执行sql语句报错解决方案

    说起来惭愧,总是犯一些小错误,纠结半天,这不应为一个分号的玩意折腾了好半天! 错误时在执行SQL语句的时候发出的,信息如下: Java代码 [default][2012-11-22 11:35:58,552][ERROR] Java代码 [com.primeton.common.connection.impl.synchronization.TraceLoggerStatementSynchronization:49] Java代码 Sql[INSERT INTO ASE_SYSTEM_LOG

随机推荐