mysql 在 xampp 中停止工作并出现错误 InnoDB:文件(未知):“读取”返回操作系统错误 223

Posted

技术标签:

【中文标题】mysql 在 xampp 中停止工作并出现错误 InnoDB:文件(未知):“读取”返回操作系统错误 223【英文标题】:mysql stop working in xampp with error InnoDB: File (unknown): 'read' returned OS error 223 【发布时间】:2019-06-23 11:11:23 【问题描述】:

查了很多错误,没找到解决办法。

尝试在 Xampp 中启动 mysql 时出现以下错误

2019-01-30 8:24:11 6428 [错误] InnoDB:文件(未知):“读取” 返回操作系统错误 223。无法继续操作 190130 8:24:11 [ERROR] mysqld 出现异常 0x80000003 ;

2019-01-30  8:23:30 6428 [Note] InnoDB: Using mutexes to ref count buffer pool pages
2019-01-30  8:23:30 6428 [Note] InnoDB: The InnoDB memory heap is disabled
2019-01-30  8:23:30 6428 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2019-01-30  8:23:30 6428 [Note] InnoDB: _mm_lfence() and _mm_sfence() are used for memory barrier
2019-01-30  8:23:30 6428 [Note] InnoDB: Compressed tables use zlib 1.2.3
2019-01-30  8:23:30 6428 [Note] InnoDB: Using generic crc32 instructions
2019-01-30  8:23:30 6428 [Note] InnoDB: Initializing buffer pool, size = 16.0M
2019-01-30  8:23:30 6428 [Note] InnoDB: Completed initialization of buffer pool
2019-01-30  8:23:30 6428 [Note] InnoDB: Highest supported file format is Barracuda.
2019-01-30  8:23:30 6428 [Note] InnoDB: The log sequence numbers 1835037 and 1835037 in ibdata files do not match the log sequence number 3178968401 in the ib_logfiles!
2019-01-30  8:23:30 6428 [Note] InnoDB: Database was not shutdown normally!
2019-01-30  8:23:30 6428 [Note] InnoDB: Starting crash recovery.
2019-01-30  8:23:30 6428 [Note] InnoDB: Reading tablespace information from the .ibd files...
2019-01-30 08:24:11 191c  InnoDB: Operating system error number 23 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
 InnoDB: Operation read to file D:\win32-packages\build\src\storage\xtradb\os\os0file.cc and at line 3203
2019-01-30  8:24:11 6428 [ERROR] InnoDB: File (unknown): 'read' returned OS error 223. Cannot continue operation
190130  8:24:11 [ERROR] mysqld got exception 0x80000003 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.

带有错误日志文件的附加信息

Server version: 10.1.21-MariaDB
key_buffer_size=16777216
read_buffer_size=262144
max_used_connections=0
max_threads=1001
thread_count=0
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 787106 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x0
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
mysqld.exe!my_parameter_handler()
mysqld.exe!my_wildcmp_mb_bin()
mysqld.exe!??2Item_change_record@@SAPAXIPAX@Z()
mysqld.exe!??2Item_change_record@@SAPAXIPAX@Z()
mysqld.exe!?get_trg_event_map@Update_rows_log_event@@UAEEXZ()
mysqld.exe!?get_trg_event_map@Update_rows_log_event@@UAEEXZ()
mysqld.exe!?get_trg_event_map@Update_rows_log_event@@UAEEXZ()
mysqld.exe!?get_trg_event_map@Update_rows_log_event@@UAEEXZ()
mysqld.exe!?get_trg_event_map@Update_rows_log_event@@UAEEXZ()
mysqld.exe!?get_trg_event_map@Update_rows_log_event@@UAEEXZ()
mysqld.exe!?set_required_privilege@Settable_routine_parameter@@UAEX_N@Z()
mysqld.exe!?ha_initialize_handlerton@@YAHPAUst_plugin_int@@@Z()
mysqld.exe!?plugin_init@@YAHPAHPAPADH@Z()
mysqld.exe!?plugin_init@@YAHPAHPAPADH@Z()
mysqld.exe!?init_net_server_extension@@YAXPAVTHD@@@Z()
mysqld.exe!?win_main@@YAHHPAPAD@Z()
mysqld.exe!?mysql_service@@YAHPAX@Z()
mysqld.exe!my_wildcmp_mb_bin()
KERNEL32.DLL!BaseThreadInitThunk()
ntdll.dll!VerSetConditionMask()
ntdll.dll!VerSetConditionMask()
The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash

尝试了许多类似的解决方案,但无法解决我的问题。

谢谢。

【问题讨论】:

快速谷歌搜索:wiki-errors.com/err.php?wiki=223 你试过了吗?不要让我们猜测,请始终在问题中包含您尝试过的内容。 @fancyPants 谢谢,但由于官方限制,我无法在我的系统中运行 techutilities 软件,我认为只有可能的问题来自 xampp/mysql。 Apache 运行良好 错误信息表明存在操作系统错误,而不是mysql错误。 什么操作系统?你有几张桌子?操作系统中的文件数量限制是多少? 32 位还是 64 位操作系统? 32 位还是 64 位 XAMPP? @RickJames OS-windows 10 - 32 位,有 8 - 10 个小桌子,一切正常,就在前一天。 【参考方案1】:

一旦我遇到同样的问题。

尝试这样做:

打开您的 XAMPP 目录并转到 XAMPP/mysql/Data 。

    ibdata*, auto.cnf, mysql.pid 到另一个文件夹' 停止 mysql 并重新启动它 如果 mysql 启动,则将 ibdata 移回原始文件夹 然后再次重复第二步。

这对我有用。 ibdata* 文件包含所有数据库和表格数据。其中 * 是指定给 ibdata* 文件的任何数字。所以请记住这一点,无论发生什么都不要删除该文件,否则您将遭受大量重要数据丢失。

【讨论】:

【参考方案2】:

我建议将mysql置于force_recovery模式,方法是将配置文件my.cnf中的conf放在下面。

[mysqld]
innodb_force_recovery = 1

重启mysql并导出整个数据库。

导出完成后,将my.cnf中的force_recovery选项去掉,重启服务。

【讨论】:

以上是关于mysql 在 xampp 中停止工作并出现错误 InnoDB:文件(未知):“读取”返回操作系统错误 223的主要内容,如果未能解决你的问题,请参考以下文章

一旦您启动 phpmyadmin XAMPP,MySQL 就会停止

XAMPP tomcat 服务未以错误启动,因为“Tomcat 启动/停止并出现错误,返回代码:1”

在 Ubuntu 18.04 中启动 Xampp 时遇到 MySQL 错误

XAMPP Apache 停止在 Mac 上工作

如何保留多个 MySQL 实例

安装Xampp后MySql登录错误