当我打开XAMPP并单击启动MySQL按钮时,它给了我一个错误。 我刚才启动了它,但现在它不工作了。

12:19:12 PM [mysql] Attempting to start MySQL app... 12:19:12 PM [mysql] Status change detected: running 12:19:13 PM [mysql] Status change detected: stopped 12:19:13 PM [mysql] Error: MySQL shutdown unexpectedly. 12:19:13 PM [mysql] This may be due to a blocked port, missing dependencies, 12:19:13 PM [mysql] improper privileges, a crash, or a shutdown by another method 12:19:13 PM [mysql] Press the Logs button to view error logs and check 12:19:13 PM [mysql] the Windows Event Viewer for more clues 12:19:13 PM [mysql] If you need more help, copy and post this 12:19:13 PM [mysql] entire log window on the forums

以下是错误日志的内容:

2013-08-02 12:19:12 4536 [Note] Plugin 'FEDERATED' is disabled. 2013-08-02 12:19:12 f64 InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator. 2013-08-02 12:19:12 4536 [Note] InnoDB: The InnoDB memory heap is disabled 2013-08-02 12:19:12 4536 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions 2013-08-02 12:19:12 4536 [Note] InnoDB: Compressed tables use zlib 1.2.3 2013-08-02 12:19:12 4536 [Note] InnoDB: Not using CPU crc32 instructions 2013-08-02 12:19:12 4536 [Note] InnoDB: Initializing buffer pool, size = 16.0M 2013-08-02 12:19:12 4536 [Note] InnoDB: Completed initialization of buffer pool 2013-08-02 12:19:12 4536 [Note] InnoDB: Highest supported file format is Barracuda. 2013-08-02 12:19:12 4536 [Note] InnoDB: The log sequence numbers 0 and 0 in ibdata files do not match the log sequence number 1616798 in the ib_logfiles! 2013-08-02 12:19:12 4536 [Note] InnoDB: Database was not shutdown normally! 2013-08-02 12:19:12 4536 [Note] InnoDB: Starting crash recovery. 2013-08-02 12:19:12 4536 [Note] InnoDB: Reading tablespace information from the .ibd files...

最重要的错误信息在这里:

2013-08-02 12:19:12 4536 [ERROR] InnoDB: 试图打开先前打开的表空间。 以前的表空间mysql/innodb_table_stats在filepath: .\mysql\innodb_table_stats.ibd使用的是空间ID: 1。 在文件路径:.\xat\payments.ibd下无法打开空间ID: 1的表空间xat/payments

日志的其余部分:

InnoDB: Error: could not open single-table tablespace file .\xat\payments.ibd InnoDB: We do not continue the crash recovery, because the table may become InnoDB: corrupt if we cannot apply the log records in the InnoDB log to it. InnoDB: To fix the problem and start mysqld: InnoDB: 1) If there is a permission problem in the file and mysqld cannot InnoDB: open the file, you should modify the permissions. InnoDB: 2) If the table is not needed, or you can restore it from a backup, InnoDB: then you can remove the .ibd file, and InnoDB will do a normal InnoDB: crash recovery and ignore that table. InnoDB: 3) If the file system or the disk is broken, and you cannot remove InnoDB: the .ibd file, you can set innodb_force_recovery > 0 in my.cnf InnoDB: and force InnoDB to continue crash recovery here.

这些错误的原因是什么?我该如何纠正它们?


当前回答

下面是解决这个问题的方法:

打开C:\xampp\mysql\data 您将看到一个名为mysql/data的文件夹 将该文件夹从mysql/data重命名为mysql/data_not_useful任何你想给的名字。 创建一个名为mysql/data的新文件夹。 复制mysql/backup的所有文件,粘贴mysql/data。 现在转到mysql/data_not_useful并从那里复制文件ibdata1。 然后粘贴到mysql/data(你必须替换文件)。 重新启动xampp服务器。 现在运行你的mysql服务器。

其他回答

2022年六月

免责声明

尽管很多人说“它起作用了”,但很少有人说“它没有作用”。

很难说是什么原因造成的,而且它也不起作用。就我个人而言,下面提供的解决方案对我有用,到目前为止我没有得到任何问题,因此我分享这个。

我不建议卸载,所以基本上可以备份文件并尝试此解决方案。如果它不起作用,那么重新放置这些文件。

参与过其他版本

这个问题也适用于其他xampp版本。 我本人没有进行过测试,但一些用户进行过测试。 (如果你在不同的版本上测试过,请在评论中告诉我,我会在这里添加)

XAMPP v8.1.6 - Saeid Z XAMPP v7.4.16 - CapelliC XAMPP v3.3.0 -我自己

2022年2月(问题)

我今天(2022年2月2日)也遇到了同样的问题。 我使用下面提到的相同解决方案修复了这个问题(参见2021年12月(解决方案))

XAMPP问题截图

XAMPP固定

2021年12月(方案)

因为这个问题是持续的, 我会尽我最大的努力去解决它。

我的问题

每当这个问题发生时,我都会访问这个帖子。我唯一尝试的是卸载xampp并重新安装它,这解决了问题。那是在我的旧系统上。

我使用的是全新的windows 10,没有多余的软件或问题,但我在很长一段时间后又意外关机了。我提出这个问题,希望有人能告诉我到底发生了什么,而不是解决这些问题。但不幸的是,我找不到它。

澄清一下,我的新杂志不是

港口 意外关闭 窗户卡住了 不需要的软件 病毒或恶意软件。

有一天我打开xampp,它停止工作了。

方法一(2021年12月22日)

停止MySQL。 转到C:/xampp/mysql目录,复制数据文件夹,并将其保存在其他地方(可能在另一个驱动器中)作为备份。 打开你的原始数据文件夹(C:/xampp/mysql),按“类型”对文件进行排序。 选择INFO File类型的文件并删除它们(下面的截图)。 启动MySQL。现在应该可以了。

方法1截图

重要的

上述解决方案并不一定能解决问题。有时不会。为了避免丢失数据的主要风险,请尝试以下方法。

只有在需要时才在控制面板中打开MySQL。 不要将XAMPP控制面板设置为windows启动状态。 尽可能备份数据库。如果没有,试着每个周末备份一下。

PS:每当上述方法不起作用时,我会尝试更新这个答案。我将尝试在不卸载XAMPP的情况下以最简单的方式解释它。

如果对你有用,请告诉我。

打开C:\xampp\mysql\backup。

复制所有文件。

将它们粘贴到C:\xampp\mysql\data中。

如果Windows要求你替换某些文件,那就替换它们。

如果您的XAMPP控制窗格处于活动状态,请关闭它。

转到C:\xampp,找到xampp-control,运行它。

启动Apache,启动MySQL。


就是这样。

享受吧!

There are a number of things I've tried. This is the 2nd time this has happened to me. On my first time, I've to reinstall my xampp. And on the third day, mysql crashed again. I've tried everything I found on the internet. Like, innodb_flush_method=normal in my.ini file and deleting ibdata1, ib_logfile1, ib_logfile0 files, and others but none of these works. So later I tried to run xampp with admin privilege and install apache and mysql as a service as it was instructed on xampp control panel itself. After starting mysql, I read error-log again and from there I came to know that one of my databases is responsible for this. That database file won't let mysql start. So I deleted everything in the data folder and then in cmd I navigated to C:/xampp/mysql/bin path and ran these commands:

mysqld——初始化

mysql_install_db

mysql又开始运行了。 但是我的数据库和数据丢失了。

永远不要删除这个文件(ibdata1),因为您的所有数据都会被删除!! 我有三个建议:

答: 1-退出XAMPP控制面板。 1-重命名mysql/data文件夹为mysql/data_old(你可以使用任何名称) 创建一个新文件夹mysql/data 3-拷贝mysql/backup目录下的内容到新的mysql/data文件夹中 拷贝mysql/data_old目录下的所有数据库文件夹到mysql/data目录下(跳过data_old目录下的mysql、performance_schema和phpmyadmin文件夹) 5-最后从mysql/data_old复制ibdata1文件,并将其替换到mysql/data文件夹中 6-重新启动系统。

B: 1-停止所有sql服务。 2-接下来,再次启动所有sql服务。

C: 1-打开XAMPP控制面板 2-点击Config按钮,在mysql前面,点击my.ini 3-更改客户端端口和服务器端端口。

下面是解决这个问题的方法:

打开C:\xampp\mysql\data 您将看到一个名为mysql/data的文件夹 将该文件夹从mysql/data重命名为mysql/data_not_useful任何你想给的名字。 创建一个名为mysql/data的新文件夹。 复制mysql/backup的所有文件,粘贴mysql/data。 现在转到mysql/data_not_useful并从那里复制文件ibdata1。 然后粘贴到mysql/data(你必须替换文件)。 重新启动xampp服务器。 现在运行你的mysql服务器。