MySQL的InnoDB引擎#1067与#187错误_file .\ib_logfile0: 'aio read' returned os error 1-程序员宅基地

技术标签: mysql  数据库  

InnoDB是通用存储引擎,可兼顾高可靠性和高性能。在 MySQL 5.7 中,InnoDB是默认的 MySQL 存储引擎。除非您配置了其他默认存储引擎,否则发出不带ENGINE=子句的CREATE TABLE语句将创建InnoDBtable。

查询MySQL支持的存储引擎

通过MySQL的客户端查询所支持的存储引擎,以及当前正在使用的引擎,如下图所示。MySQL各存储引擎的区别请查阅在线官方文档库

mysql> SHOW ENGINES;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.06 sec)

innodb_flush_method的作用

InnoDB是 MySQL 的事务安全存储引擎,具有提交,回滚和崩溃恢复功能,用于保护用户的数据。这些功能需要OS和磁盘系统的支持,否则无法工作。有些OS或者磁盘子系统为了提高性能,对写操作进行延迟或者重新排序,在Flash写数据到磁盘前是否返回等,与InnoDB的默认设置不同,造成MySQL启动失败。

异常1067和187问题的起因

启动时,MySQL报“错误1067:进程终止”,在Windows日志的应用程序里报“OS error 187”。错误的起因是MySQL的读写、操作系统的Buffer、Flash到磁盘之间的冲突引起。三者之间的关系将在后续补充完成【TODO】,请关注。通过控制台的方式启动MySQL查看更多详细的过程信息,如下所示:

D:\mysql-5.6.49-winx64\bin>.\mysqld.exe --console
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
[Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled
[Note] .\mysqld.exe (mysqld 5.6.49) starting as process 32620 ...
[Note] Plugin 'FEDERATED' is disabled.
[Note] InnoDB: Using atomics to ref count buffer pool pages
[Note] InnoDB: The InnoDB memory heap is disabled
[Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
[Note] InnoDB: Memory barrier is not used
[Note] InnoDB: Compressed tables use zlib 1.2.11
[Note] InnoDB: Not using CPU crc32 instructions
[Note] InnoDB: Initializing buffer pool, size = 128.0M
[Note] InnoDB: Completed initialization of buffer pool
[Note] InnoDB: Highest supported file format is Barracuda.
InnoDB: Operating system error number 87 in a file operation.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/operating-system-error-codes.html
[ERROR] InnoDB: File .\ib_logfile0: 'aio read' returned OS error 187. Cannot continue operation

解决办法之一

MySQL默认innodb_flush_method=async_unbuffered,该选项不支持在 Windows 的 4K 扇区硬盘上运行 MySQL 服务器,解决方法是使用innodb_flush_method=normal。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/MyFreeIT/article/details/109294438

智能推荐

趣味代码:水果动物派对_动物派对的代码-程序员宅基地

文章浏览阅读1.5k次。看到网上有类似的代码截图,但是没有找到源码,只好自己写了一份~~~但是markdown不识别这些符号,所以,搞几张截图和一个识别这些符号的链接吧~~~感觉这个十分有趣,但是没啥技术含量。paste.ubuntu源码链接~~~_动物派对的代码

基于Java+Vue+uniapp微信小程序健身房私教预约设计和实现-程序员宅基地

文章浏览阅读1.5k次,点赞22次,收藏17次。计算机技术的飞速发展带动了各种管理软件的兴起,对我们的工作管理、生活都是很大的帮助,本健身房私教预约微信小程序是采用小程序技术开发的对课程购买、预约工作的信息化、数字化管理,以改变传统的纸质预约方式,本健身房私教预约微信小程序从管理员,用户,教练三个角色来进行功能设计,本论文详细的介绍了健身房私教预约微信小程序的设计过程,并对课题的需求和背景意义目的进行分析介绍,从面向对象的方面进行开发设计,对设计课题的可行性进行详细分析,最后完成本健身房私教预约微信小程序的实现。

前端面试知识点大全——web安全篇-程序员宅基地

文章浏览阅读1.7k次。总纲:前端面试知识点大全目录1.xss(跨站脚本攻击)1.1 概念1.2 防御手段2.csrf(跨站请求伪造)2.1 概念2.2 CSRF防御3. SQL注入3.1 概念3.2 防御手段4.DDOS4.1 概念4.2 例子4.3 解决方案1.xss(跨站脚本攻击)1.1 概念跨站脚本攻击(Cross-Site Scripting,...

Android-程序员宅基地

文章浏览阅读373次,点赞8次,收藏8次。android/frameworks/base/core/java/android/bluetooth/BluetoothAdapter.java:代表本地蓝牙适配器,是所有蓝牙交互的入口。/android/packages/apps/Settings/src/com/android/settings/bluetooth/BluetoothEnabler.java:蓝牙功能的开启/关闭功能处理。切换状态到mTurningOnState,并且调用其非状态的enter()方法,向上层汇报蓝牙此时状态。

QT+OSG/osgEarth编译之四十八:pcre+Qt编译(一套代码、一套框架,跨平台编译,版本:Cal3D-0.13)_qt pcre-程序员宅基地

文章浏览阅读928次,点赞19次,收藏21次。通过一套pcre-8.45代码和框架,实现pcre的跨平台编译。在Qt环境下,集成cal3d库的头文件、库文件,构建跨平台编译的pcre pro文件。通过构建的一套配置工程,基于Qt Creator IDE,完成跨平台的编译实践。在Windows、Linux、MacOS等操作系统上进行测试,成功编译,形成的成果(头文件、库文件等)可在不同系统下调用或使用,从而更好地构建跨平台解决方案。采用的是pcre-8.45版本。读者可参考博客中的集成原理和pro文件,构建不同版本的pcre跨平台包。_qt pcre

医保业务的相关概念-程序员宅基地

文章浏览阅读2.4k次。基本医疗保险:https://baike.baidu.com/item/%E5%9F%BA%E6%9C%AC%E5%8C%BB%E7%96%97%E4%BF%9D%E9%99%A9个人医疗保险:https://baike.baidu.com/item/%E4%B8%AA%E4%BA%BA%E5%8C%BB%E7%96%97%E4%BF%9D%E9%99%A9社会医疗保险:https://bai...

随便推点

linux元字符和通配符,bash通配符和正则表达式元字符部分归纳-程序员宅基地

文章浏览阅读97次。Linux中有各种各样的字符,而且在不同环境和不同命令之下含义也不同作为新手,决定先归纳学到的符号,方便后面学习厘清它们之间的关系。glob简化了的正则表达式bash默认通配符:?:只匹配一个任意字符;*:匹配零个或多个任意字符;[^]:方括号及其中^中的取反[abc]:匹配任何一个列在方括号中的字符(这个例子要么匹配一个a,要么匹配一个b,要么匹配一个c);如果在方括号中使用短划线分隔两个字符,..._linux的bash中通配符能匹配空格吗

初学者的Compose_c++ compose-程序员宅基地

文章浏览阅读131次。Docker ComposeDocker Compose容器编排YAML 是一种标记语言很直观的数据序列化格式文件格式及编写注意事项不支持制表符tab键缩进,需要使用空格缩进通常开头缩进2个空格字符后缩进1个空格,如冒号、逗号、横杠用#注释如果包含特殊字符用单引号引起来布尔值必须用引号括起来Docler Compose配置常用字段字段描述build docker context指定Dockerfile文件名构建镜像上下文路径image指定镜像_c++ compose

「文心一言」内测详细使用体验-程序员宅基地

文章浏览阅读6.2k次,点赞38次,收藏21次。文心一言内测详细使用体验,一起来看看百度的文心一言吧!

SpringDataRedis简介_、spring data redis是什么?-程序员宅基地

文章浏览阅读98次。1 Redisredis是一款开源的Key-Value数据库,运行在内存中,由ANSI C编写。企业开发通常采用Redis来实现缓存。同类的产品还有memcache 、memcached 、MongoDB等。2 JedisJedis是Redis官方推出的一款面向Java的客户端,提供了很多接口供Java语言调用。可以在Redis官网下载,当然还有一些开源爱好者提供的客户端,如Jredis、S..._、spring data redis是什么?

主流OLAP引擎查询Hudi表数据_hudi支持的olap引擎-程序员宅基地

文章浏览阅读229次。Hudi存储和管理数据,同时为各种查询引擎提供了不同的查询方式。本文介绍了如何在不同的查询引擎中使用不同的查询方式,并讨论每个查询引擎的任何特定说明。1.1 快照查询快照查询是Hudi表最常见的查询类型。Spark SQL同时支持COPY_ON_WRITE和MERGE_ON_READ表上的快照查询。使用会话属性,可以围绕数据跳过和索引指定各种选项,以优化查询性能,如下所示。1.2 time travel 查询可以使用AS OF语法在特定的提交时间查询表。_hudi支持的olap引擎

无线路由器、AP、胖AP、瘦AP的概念区别-程序员宅基地

文章浏览阅读573次。在学校里这几个概念一直迷迷糊糊,如今刚刚走上工作岗位,对这几个概念进行梳理一下。如果感觉不对,请帮忙指正,谢谢!一、无线路由器与无线AP(Access Point 无线接入点)的区别 成本:无线路由器价格远低于AP; 照片:AP不具备WAN(广域网),LAN(城域网)端口; ..._无线路由与胖ap的区别