当我打开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.

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


当前回答

重要提示:不要删除ibdata1文件。你可以毁掉你所有的数据库。

相反,首先尝试使用XAMPP附带的MySQL备份文件夹。所以接下来的步骤:

将mysql/data文件夹重命名为mysql/data_old 复制mysql/backup文件夹,命名为mysql/data 将所有数据库文件夹从mysql/data_old复制到mysql/data(除了mysql, performance_schema和phpmyadmin文件夹) 将mysql/data_old/ibdata1文件拷贝到mysql/data文件夹中 从XAMPP控制面板启动MySQL

And,瞧!

编辑(2023年1月7日)

正如一些用户所提到的,这是一种紧急解决方案,而不是永久解决方案。在恢复数据后,强烈建议备份它,并重新安装XAMPP,因为失败与XAMPP的一些文件的故障有关,而不是数据库。

其他回答

你得到这个错误,因为你的sql端口3306正在忙(其他应用程序正在使用它)

停止3306进程(通过关闭该应用程序结束进程) 但是如何找到它?? 下载Microsoft的TCP查看器 打开应用程序并搜索SQL 您将看到SQL正在运行并使用3306端口 这就是为什么xampp的mysql无法运行的原因。

只需结束myql进程,就可以开始了 启动xampp的mysql,完成

当您已经使用3306端口时就会发生这种情况。只要改变服务器端口,问题就会解决。

0.cntr+alt+delet
1.end task mysqld
2.Restart mysql.

如果没有一个文件的删除工作,那么可能你的mysql服务没有运行。 去做礼拜。启动mysql服务

请检查系统时间是否正确。我的时间设定在2040年,修正日期就解决了问题。